Building Generative AI Applications with LangChain and OpenAI API(openai langchain api)
1. 开始之前的准备工作
在使用OpenAI和LangChain API构建自己的DevSecOps利用之前,我们需要进行一些准备工作。
设置OpenAI API密钥
为了在利用中使用OpenAI API,我们需要设置API密钥。通过sys和os模块,我们可以在利用中设置OpenAI API密钥。
示例代码:
sys.environ["OPENAI_SECRET_KEY"] = "your_api_key"
2. 使用OpenAI API进行问答
LangChain提供了ChatOpenAI类,用于与OpenAI API进行交互。
调用OpenAI Chat模型进行问答
使用ChatOpenAI类的方法,我们可以调用OpenAI Chat模型进行问答。
示例代码:
response = chat_model.message('question')
3. 构建网络界面与用户交互
我们可使用gradio库创建网络界面,与用户进行交互。
使用gradio库创建网络界面
gradio是一个用于创建网络界面的Python库,可以帮助我们创建用户界面,与用户进行交互。
示例代码:
gradio.Interface(fn=chat_model.message, inputs='text', outputs='text').launch()
输入问题与获得答案
用户可以在网络界面中输入问题,并获得OpenAI模型返回的答案。
示例代码:
question = input('请输入问题:')
answer = chat_model.message(question)
4. 使用LangChain API进行问答
LangChain提供了API接口,可以用于调用区别的语言模型,包括OpenAI模型。
调用LangChain API进行问答
使用LangChainAPI类的方法,我们可以调用OpenAI模型进行问答。
示例代码:
response = langchain_api.ask('question')
5. DevSecOps利用中的其他功能
在DevSecOps利用中,我们还可使用其他功能来增强利用的安全性和运维能力。
与Azure OpenAI集成
我们可使用Azure OpenAI API实例来与Azure进行集成,以满足更多的开发需求。
示例代码:
azure_openai_instance = 'my-openai'
使用区别模型的灵活性
OpenAI API支持多个模型,我们可以根据实际需求选择适合的模型。
示例代码:
chatbot_model = 'ChatGPT'
6. 总结
通过结合OpenAI和LangChain API,我们可以构建自己的DevSecOps利用,利用强大的语言模型进行问答和交互。
通过使用gradio库创建网络界面,并通过LangChain API与区别的模型进行交互,我们可以实现用户界面和灵活的模型选择。
通过与Azure OpenAI集成和使用其他功能,我们可以开发出安全性和运维性强的利用功能。
openai langchain api的进一步展开说明
介绍
生成式人工智能(Generative AI)正引领着行业中最新的技术浪潮。图象生成、文本生成、摘要和问答机器人等生成式人工智能利用正在蓬勃发展。最近,OpenAI引领了大范围语言模型的浪潮,许多初创公司开发了工具和框架,使开发人员能够使用这些大范围语言模型构建创新利用程序。其中一个工具就是LangChain,这是一个具有组合和可靠性的大范围语言模型利用程序开发框架。LangChain已成为全球人工智能开发人员构建生成式人工智能利用程序的首选工具。LangChain还允许连接外部数据源,并与市场上提供的许多大范围语言模型进行集成。另外,由大范围语言模型驱动的利用程序需要一个向量存储数据库来存储它们以后将检索的数据。在本博客中,我们将通过使用OpenAI API和ChromaDB构建一个利用程序流水线来了解LangChain及其功能。
学习目标:
– 学习LangChain的基础知识,以构建生成式人工智能流水线
– 使用开源模型和向量存储数据库,如Chromadb,进行文本嵌入
– 学习怎样使用LangChain和OpenAI API将大范围语言模型集成到利用程序中
LangChain概述
LangChain最近成为大范围语言模型利用的热门框架。LangChain提供了一个复杂的框架,可以与大范围语言模型、外部数据源、提示和用户界面进行交互。
LangChain的价值主张
LangChain的主要价值主张是:
组件:这些是与语言模型一起工作所需的抽象。组件是模块化的,易于用于许多大范围语言模型的用例。
现成的链式组合:用于实现特定任务(例如摘要、问答等)的各种组件和模块的结构化集合。
项目详情
LangChain是一个开源项目,自推出以来,该项目已取得了54K+ Github 星,这显示了该项目的受欢迎程度和可接受性。
项目的自述文件以下所示:
大范围语言模型(LLMs)正在成为一种变革性的技术,使开发人员能够构建之前没法实现的利用程序。但是,仅使用这些大范围语言模型常常不足以创建一个真正强大的利用程序 – 真实的强大的地方在于你将它们与其他计算或知识源的结合。来源:项目Repo
明显,它定义了框架的目的,并旨在帮助开发此类利用用户知识的利用程序。
LangChain组件(来源:ByteByteGo)
LangChain具有六个主要组件来构建LLM利用程序:模型I/O、数据连接、链条、内存、代理和回调。该框架还允许与许多工具集成以开发全栈利用程序,如OpenAI、Huggingface Transformers和Pinecone、chromadb等向量存储。
组件的详细说明:
模型I/O:与语言模型交互的接口。它由提示(Prompts)、模型(Models)和输出解析器(Output parsers)组成。
数据连接:与特定利用程序数据源进行交互的接口,包括数据转换器(Data transformers)、文本拆分器(Text splitters)、向量存储和检索器(Vector stores and retrievers)。
链条:使用AI利用程序的其他组件构建一系列调用。链条的一些示例包括顺序链条、摘要链条和检索Q&A链条。
代理:LangChain提供代理,允许利用程序利用基于用户输入的各种工具(包括LLM)的动态调用链。
内存:在链的运行之间持久化利用程序状态。
回调:记录和流程链的每一个步骤,以便高效地运行链并监控资源消耗。
现在让我们来看看LangChain的一些用例。
使用OpenAI API、ChromaDB和LangChain构建生成式人工智能利用
基于LangChain和OpenAI API构建的语义搜索问答
该流程解析搜索词和文档的意图和上下文,从而生成更准确的搜索结果。通过理解用户意图、分析单词和概念之间的关系,并利用自然语言处理(NLP)中的注意力机制,可以提供上下文感知的搜索结果,从而提高搜索的准确性。
LangChain提供了一个OpenAI聊天界面,可以调用模型API,创建一个问答流程,根据给定的上下文或输入文档回答用户的查询。它基本上履行向量化搜索,以找到与问题最类似的答案。(参考下面的流程图。)
# 在下面的参数中插入OpenAI密钥
import os
os.environ[“OPENAI_API_KEY”] = “YOUR-OPENAI-KEY”
# 从langchain.chat_models中导入所需组件
from langchain.chat_models import ChatOpenAI
model_name = “gpt⑶.5-turbo”
llm = ChatOpenAI(model_name=model_name)
# 使用q&a链获得我们问题的答案
from langchain.chains.question_answering import load_qa_chain
chain = load_qa_chain(llm, chain_type=”stuff”, verbose=True)
query = “What are the emotional benefits of owning a pet?”
matching_docs = db.similarity_search(query)
answer = chain.run(input_documents=matching_docs, question=query)
answer
在上面的代码中,我们使用LangChain的ChatOpenAI()函数调用“gpt⑶.5-turbo”模型API,创建一个q&a链以回答我们的查询。 欲了解详细信息,请浏览LangChain的官方文档。
使用LLMChain生成公司名称
大范围语言模型的另外一个用例是使用LLMChain、OpenAI大范围语言模型和LangChain的PromptTemplate生成公司名称,可以根据给定的描写作为提示来生成公司或产品名称。下面是代码示例:
# 从langchain中导入所需组件
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
# 使用OpenAI的LLM
llm = OpenAI(temperature=0.9)
# 使用PromptTemplate创建提示
prompt = PromptTemplate(
input_variables=[“product”],
template=”What is a good name for a company that makes {product}?”
)
# 使用LLMChain创建链
chain = LLMChain(llm=llm, prompt=prompt)
# 仅指定输入变量运行链
print(chain.run(“colorful socks”))
使用LangChain的链进行文本摘要
链还允许开发文本摘要利用程序,这对法律行业来讲很有帮助,可以摘要大量的法律文件以加快司法程序的进展。请参阅以下示例代码,使用LangChain的load_summarize_chain函数:
# 从langChain中导入load_summarize_chain函数和OpenAI大范围语言模型
from langchain.llms import OpenAI
from langchain.chains.summarize import load_summarize_chain
# 使用OpenAI的LLM
llm = OpenAI(temperature=0.9)
# 使用LLMChain和map_reduce链类型创建链实例
chain = load_summarize_chain(llm, chain_type=”map_reduce”)
# 运行链
chain.run(docs)
LangChain的易于使用界面为终究用户解决了许多区别的利用程序,并解决了问题。正如您所看到的,只需几行代码,我们就能够利用大范围语言模型的强大功能,摘要从互联网上的任何来源获得的任何数据。
结论
总之,本篇博客探讨了使用LangChain和OpenAI API构建生成式人工智能利用的使人兴奋的领域。我们了解了LangChain的概述、其各个组件和LLM利用的用例。生成式人工智能在各个领域获得了革命性的突破,使我们能够生成逼真的文本、图象、视频等。语义搜索是一种利用,利用OpenAI的LLM,如GPT⑶.5和GPT⑷,构建问答利用。让我们来总结一下本文的要点:
– 我们了解了LangChain的扼要概述——一个用于构建LLM驱动的利用程序的开源框架。
– 我们学习了怎样使用LangChain和ChromaDB(一个向量数据库)进行文本嵌入。
– 最后,我们学习了怎样使用OpenAI的LLM API使用LangChain构建生成式人工智能利用。
常见问题
问1:甚么是生成式人工智能?
答1:生成式人工智能是一种机器学习技术,通过学习大量的非结构化数据生成新的文本、图象、音乐乃至视频。
问2:甚么是语义搜索?
答2:语义搜索利用程序解析搜索词和文档的意图和上下文,以生成精确的搜索结果,从而提高搜索的准确性。
问3:LangChain是甚么,它有哪几种关键功能?
答3:LangChain是大范围语言模型利用程序开发中的流行框架。LangChain提供了与LLM,外部数据源,提示和用户界面交互的框架。
问4:LangChain的好处是甚么?
答4:LangChain可以连接各种外部数据源,也能够集成LLM在各种用例中,如聊天机器人、自动摘要和代码生成等。
问5:LangChain支持哪些数据库?
答5:LangChain支持像ChromaDB和Pinecone这样的向量数据库,还支持像MS SQL、MySQL、MariaDB、PostgreSQL、Oracle SQL等结构化数据库。
openai langchain api的常见问答Q&A
问题1:使用OpenAI、LangChain 和 LlamaIndex 构建自己的 DevSecOps AI 解决方案好处有哪些?
答案:使用OpenAI、LangChain 和 LlamaIndex 构建自己的 DevSecOps AI 解决方案具有以下优势:
- 加速开发:OpenAI、LangChain 和 LlamaIndex 提供了强大的人工智能和自然语言处理能力,可以快速构建和训练定制化的模型,大大加快了开发速度。
- 高度可定制化:通过使用这些工具,可以根据具体需求进行开发和定制,确保解决方案符合业务需求和技术要求。
- 提升安全性:DevSecOps AI 解决方案可以整合安全审计、漏洞扫描、风险评估等功能,帮助企业及时发现和解决安全漏洞,提升利用系统的安全性。
- 自动化流程:利用人工智能和机器学习技术,可以实现自动化测试、自动化部署、自动化监测等流程,减少人力本钱和提高效力。
- 智能决策支持:通过分析大量数据和使用机器学习算法,DevSecOps AI 解决方案可以提供智能决策支持,帮助企业优化业务流程和提升决策能力。
- 提高开发人员效力:通过自动化和智能化的功能,DevSecOps AI 解决方案可以减少开发人员的重复劳动,提升开发效力和代码质量。
- 灵活性和可扩大性:OpenAI、LangChain 和 LlamaIndex 提供了丰富的API和工具,可以很容易地与现有的开发环境和工具集成,具有良好的灵活性和可扩大性。