LangChain系统安装和快速入门|豆包MarsCode AI刷题

27 阅读5分钟

LangChain系统安装和快速入门|豆包MarsCode AI刷题

前言

AI练中学理论上将所有需要的包都配置好了,如果代码不缺少包,就不需要自行配置。如果缺少某些包,用pip install 安装相关即可。在README.md文件中可以看到详细配置

大语言模型

1. 大语言模型是什么?

  • 是一种基于深度学习技术(如神经网络)的人工智能模型。
  • “大”的特点是参数量巨大,能够捕获复杂的语言模式。
  • 通过大量文本数据训练,目标是“预测下一个词”。

2. 大语言模型的工作原理

  • 基本原理:根据上下文预测下一个词(语言的生成任务)。

  • 利用神经网络学习词语和短语间的关系,理解上下文甚至常识。

  • 示例:输入“今天的天气真”,模型预测“好”。

    • 预测基于语言统计特征和上下文理解能力。

3. 局限性

  • 缺乏真正的理解力和情感,没有人类的意识。
  • 仅依赖数据中的模式来预测,可能会生成不合理的内容或犯错。

4. LangChain——基于大语言模型的应用开发工具

  • LangChain 的核心功能:

    • 提供灵活、模块化的框架,便于调用语言模型。
    • 允许开发者根据需求快速构建功能链条,像乐高积木一样简单。
  • 适用开发语言: 支持 Python 和 JavaScript,其中 Python 是较常用版本。

  • 用途:

    • 快速开发基于大语言模型的应用。
    • 支持定制复杂功能,满足高级开发需求。

安装LangChain

命令行安装

 pip install langchain

安装LangChain大部分依赖项

安装LangChain时包括常用的开源LLM(大语言模型) 库。 安装完成之后,还需要更新到 LangChain 的最新版本,这样才能使用较新的工具。

 pip install langchain[llms]
 pip install --upgrade langchain

OpenAI API

OpenAI 提供了多种大语言模型(LLM),主要通过 API 进行调用。LangChain 是一个高级封装框架,旨在便捷地使用这些模型,同时支持多种功能扩展。要深入理解 LangChain 的底层逻辑,首先需要掌握 OpenAI API 的基本设计及调用方式。

注册OpenAI,并获得一个API Key

img

安装OpenAI库

 pip install openai

导入OpenAI API Key

  • 方法一:在代码中设置环境变量
 import os
 os.environ["OPENAI_API_KEY"] = '你的Open API Key'
  • 方法二:直接设置OpenAI库的api_key值
 import openai
 openai.api_key = '你的Open API Key'
  • 方法三(建议使用):在操作系统中设置环境变量
 export OPENAI_API_KEY='你的Open API Key' 

调用Text Model

描述: 用于生成非对话式文本,适合单轮任务,如文本补全、总结等。

代表模型:

  • text-davinci-003
  • text-embedding-ada-002(嵌入模型)
  • text-similarity-curie-001(相似性比较模型)

特点: 通过 prompt 参数传入文本提示,输出直接为生成内容。

 import os
 from openai import OpenAI
 from volcenginesdkarkruntime import Ark
 # os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
 # os.environ["OPENAI_BASE_URL"] = 'OpenAI 的 API URL'
 api_key = os.environ.get('OPENAI_API_KEY')
 base_url = os.environ.get('OPENAI_BASE_URL')
 client = Ark(
     base_url=base_url,
     api_key = api_key
 )
 # client = OpenAI()
 response = client.chat.completions.create(
     model=os.environ.get("LLM_MODELEND"),
     temperature=0.5,
     max_tokens=100,
     messages = [
         {"role": "user", "content": "请给我的花店起个名"}
     ]
 )
 print(response.choices[0].message.content.strip())

:文本生成模型的详细参数

img

在使用Text模型(如text-davinci-003)的情况下,响应对象的主要字段包括:

img

Chat Model

描述: 用于生成对话式文本,适合人机交互或多轮对话场景。

代表模型:

  • gpt-3.5-turbo
  • gpt-4

特点: 支持上下文交互,通过 messages 参数传递多轮消息历史。

消息角色:

  • system:设定对话背景。
  • user:用户的请求。
  • assistant:模型的回复。

调用示例:

 import os
 from openai import OpenAI
 # os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
 # os.environ["OPENAI_BASE_URL"] = 'OpenAI 的 API URL'
 client = OpenAI()
 # text = client.invoke("请给我写一句情人节红玫瑰的中文宣传语")
 response = client.chat.completions.create(
     model=os.environ.get("LLM_MODELEND"),
     messages=[
         {"role": "system", "content": "You are a creative AI."},
         {"role": "user", "content": "请给我的花店起个名"},
     ],
     temperature=0.8,
     max_tokens=600,
 )
 ​
 print(response.choices[0].message.content)

:response对象的详细参数

img

通过 LangChain 调用 Text 和 Chat 模型

调用Text模型

(1)导入LangChain的OpenAI类

(2)创建一个LLM(大语言模型)对象,指定使用的模型和一些生成参数

(3)使用LLM对象生成结果并输出

 import os
 from langchain_openai import ChatOpenAI
 ​
 # os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
 # os.environ["OPENAI_BASE_URL"] = 'OpenAI 的 API URL'
 ​
 llm = ChatOpenAI(
     model=os.environ.get("LLM_MODELEND"),
     temperature=0.8,
     max_tokens=600,
 )
 response = llm.invoke("请给我的花店起个名")
 ​
 print(response)

(4)运行结果

image-20241119164647627

调用Chat模型

(1)通过导入LangChain的ChatOpenAI类,创建一个Chat模型对象,指定使用的模型和一些生成参数。然后从LangChain的schema模块中导入LangChain的SystemMessage和HumanMessage类

(2)创建一个消息列表。消息列表中包含了一个系统消息和一个人类消息。

(3)使用创建的chat对象和消息列表调用ChatOpenAI类的call方法,进行文本生成。生成的结果被存储在response变量中。

 import os
 from langchain_openai import ChatOpenAI
 from langchain.schema import HumanMessage, SystemMessage
 ​
 # os.environ["OPENAI_API_KEY"] = '你的OpenAI API Key'
 # os.environ["OPENAI_BASE_URL"] = 'OpenAI 的 API URL'
 ​
 chat = ChatOpenAI(
     model=os.environ.get("LLM_MODELEND"),
     temperature=0.8,
     max_tokens=600)
 ​
 messages = [
     SystemMessage(content="你是一个很棒的智能助手"),
     HumanMessage(content="请给我的花店起个名"),
 ]
 response = chat(messages)
 print(response)
 ​

(5)运行结果

image-20241119164753342

总结

①成功安装LangChain和大部分依赖项

②了解了OpenAI有TextChat两种模型,Text模型适合单轮文本生成、Chat模型更像真实对话。并学到了这两种API的基本调用方式。

  • Chat 模型:适合多轮对话交互场景,通过 messages 参数传递上下文。
  • Text 模型:更适合单轮生成任务,通过 prompt 提供简单输入。
  • LangChain:封装了 OpenAI 的模型调用流程,降低开发复杂度,便于扩展和集成。

③学到会了使用LangChain框架调用Text和Chat两种模型

④目前已经有很多流行的大语言模型,可以试试大模型开源社群HuggingFace官方网站的很多开源模型