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
安装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())
注:文本生成模型的详细参数
在使用Text模型(如text-davinci-003)的情况下,响应对象的主要字段包括:
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对象的详细参数
通过 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)运行结果
调用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)运行结果
总结
①成功安装LangChain和大部分依赖项
②了解了OpenAI有Text和Chat两种模型,Text模型适合单轮文本生成、Chat模型更像真实对话。并学到了这两种API的基本调用方式。
- Chat 模型:适合多轮对话交互场景,通过
messages
参数传递上下文。 - Text 模型:更适合单轮生成任务,通过
prompt
提供简单输入。 - LangChain:封装了 OpenAI 的模型调用流程,降低开发复杂度,便于扩展和集成。
③学到会了使用LangChain框架调用Text和Chat两种模型
④目前已经有很多流行的大语言模型,可以试试大模型开源社群HuggingFace官方网站的很多开源模型