初识Lang Chain | 豆包MarsCode AI 刷题

112 阅读4分钟

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. 抽象和模块化
  2. 多功能集成
  3. 工作流管理
  4. 链式调用
  5. 集成外部工具
  6. 简化和优化开发流程
  7. 支持多种用例

主要模型类别

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(金融领域)
  • 功能:针对特定领域进行优化,以提高在该领域的表现。