LangChain的定义如下: LangChain 是一个用于构建基于大语言模型(LLMs)的应用程序的框架。它提供了一组模块和工具,帮助开发者更方便地创建和管理与语言模型交互的应用。LangChain 的设计目标是简化与语言模型的集成,使得开发者能够专注于构建功能强大的应用,而不必处理底层的实现细节。(可以向MarsCode AI提问) 其主要特性如下: 模块化设计:LangChain 提供多个模块,如文本处理、链式调用、数据连接等,可以灵活组合以适应不同的应用场景。 链式调用:允许将多个操作(例如,文本生成、数据检索等)组合成一个链,以实现复杂的逻辑。 集成 API:能够与多种外部 API 和工具(如数据库、搜索引擎等)集成,以增强应用的功能。 上下文管理:支持管理对话和上下文,使得在多轮交互中保持连贯性变得更加容易。 易于扩展:开发者可以根据需要扩展 LangChain 的功能,或者添加自己的组件和模块。 应用场景如下:
- 聊天机器人
- 数据分析和报告生成
- 内容生成(如文章、博客、社交媒体帖子等)
- 问答系统 首先安装langchain 掘金小册文中已经讲述。 接着,使用科学的方法注册得到API key 了解两种模型,chat model and text model
1.text model:当你调用OpenAI的Completion.create方法时,它会返回一个响应对象,该对象包含了模型生成的输出和其他一些信息。这个响应对象是一个字典结构,包含了多个字段。例如: import os from openai import OpenAI
-
导入库:导入Python的
os模块和OpenAI类。os模块用于与操作系统交互,而OpenAI用于与OpenAI API进行交互。 #os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key' #os.environ["OPENAI_BASE_URL"] = 'OpenAI 的 API URL' -
设置环境变量:用于设置OpenAI API的密钥和基础URL。需要用实际的API密钥替换
'你的OpenAI API Key',并用实际的URL替换'OpenAI 的 API URL'。这些信息通常用于身份验证和API请求。 client = OpenAI() -
创建客户端:实例化
OpenAI类,创建一个client对象,用于后续与OpenAI API进行交互。 response = client.completions.create( #model=os.environ.get("LLM_MODELEND"), model="gpt-3.5-turbo-instruct", temperature=0.5, max_tokens=100, prompt="请给我写一段生日祝福", ) -
生成文本:调用
client.completions.create()方法向OpenAI API发送请求以生成文本。具体参数如下:model="gpt-3.5-turbo-instruct":指定使用的模型,这里使用的是gpt-3.5-turbo-instruct。temperature=0.5:控制生成文本的随机性。值在0到1之间,0表示生成更确定性的输出,1则表示生成更随机的输出。max_tokens=100:限制生成文本的最大长度,最多生成100个token(词或词的一部分)。prompt="请给我写一段生日祝福":设置生成文本的提示。 print(response.choices[0].text.strip())
-
打印结果:从API的响应中提取生成的文本,并去掉首尾的空白字符,然后打印出来。
response.choices[0].text表示选择的第一个生成结果。
2.chat model
整体流程上,Chat模型和Text模型的调用是类似的,只是前面加了一个chat,然后输入(prompt)和输出(response)的数据格式有所不同。
3.思考题解答
- 抽象和模块化
- 多功能集成
- 工作流管理
- 链式调用
- 集成外部工具
- 简化和优化开发流程
- 支持多种用例
主要模型类别
1. 文本生成模型
- 示例:GPT、GPT-2、GPT-3、GPT-4等
- 功能:通过给定的提示生成连贯的文本。
2. 文本理解模型
- 示例:BERT(Bidirectional Encoder Representations from Transformers)
- 功能:主要用于理解和处理文本,进行文本分类、命名实体识别、问答等任务。BERT不是文本生成模型,而是通过上下文理解文本的含义。
3. 编码器-解码器模型
- 示例:T5(Text-to-Text Transfer Transformer)、BART(Bidirectional and Auto-Regressive Transformers)
- 功能:可以进行文本生成和理解,适用于机器翻译、文本摘要等任务。
4. 对话模型
- 示例:DialoGPT、ChatGPT
- 功能:专门设计用于进行对话和交互式问答。
5. 自监督学习模型
- 示例:RoBERTa、ALBERT
- 功能:通过自监督学习方式进行文本表示学习,通常用于文本分类和序列标注等任务。
6. 多模态模型
- 示例:CLIP、DALL-E
- 功能:结合文本和图像信息,处理多种类型的数据。
7. 领域特定模型
- 示例:BioBERT(生物医学领域)、FinBERT(金融领域)
- 功能:针对特定领域进行优化,以提高在该领域的表现。