安装LangChain
安装LangChain可以通过pip install langchain
完成,但要注意与其他工具的集成需要额外安装依赖,如openai
和chroma
。
推荐使用pip install langchain[llms]
来安装包含常用大语言模型的版本,之后再用pip install --upgrade langchain
来保持最新版本。
Openai API
OpenAI API 是 OpenAI 提供的用于访问其大语言模型(如 GPT-3、GPT-4 等)的应用程序接口。通过这些API,开发者可以将自然语言处理能力集成到自己的应用中,实现诸如文本生成、对话、语言翻译等功能。OpenAI 的 API 通过一系列端点,让用户发送输入(prompt)并获得模型的输出(response)。
通过一些神秘方法获得OPENAI API后来看看下面两个代码分别展示了CHAT MODEL和TEXT MODEL 首先先介绍OPENAI API的调用参数 在调用OpenAI API时,开发者可以使用各种参数来定制化请求,从而控制模型生成文本的内容和风格。以下是关键参数的简要说明:
- model:指定所使用的模型类型,例如
text-davinci-003
、gpt-3.5-turbo
等。 - prompt:提示或问题的内容,告诉模型需要生成什么样的文本。
- temperature:用于控制生成文本的随机性。较高的值(如 0.8)会让输出更具多样性,较低的值(如 0.2)则让输出更确定。
- max_tokens:生成文本的最大长度,注意单位是Tokens。比如一个英文单词通常是一个Token。
- suffix:可以附加到模型生成的文本末尾的字符串。
- top_p:与temperature类似,但通过核采样控制生成的随机性。
- n:生成的候选响应数目,使用多个响应可以帮助选择最佳答案。
- stream:是否以流的方式输出生成的Tokens,如果为
true
,会逐步返回结果。 - logprobs:请求输出的Token的概率信息。
- echo:设置为
true
时,返回的文本会包含请求中的输入内容。 - stop:设置一个或多个停止符号,当模型生成文本遇到这些符号时会停止。
- presence_penalty 和 frequency_penalty:用于影响模型生成新信息的程度,可以提高生成多样性。
- best_of:生成最佳响应的数量,适用于在指定多个响应时。
- logit_bias:对指定Token的生成概率进行偏置处理。
- user:用于标识请求的用户,方便OpenAI进行监控和管理。
响应对象详解
OpenAI API 的响应对象包含了模型生成的输出和其他相关信息,通常包含以下主要字段:
- id:响应的唯一标识符。
- object:对象类型,通常为
text_completion
。 - created:生成响应的时间。
- model:生成响应所用模型的名称。
- choices:包含所有生成的输出,列表的每一项对应一个生成的结果。
- usage:包含关于Token使用的统计信息,如提示的Token数量(
prompt_tokens
)、生成的Token数量(completion_tokens
)以及总Token数量(total_tokens
)。
在代码中,你可以通过 response.choices[0].text.strip()
来获取第一个生成的文本,并移除前后的空白符号。
CHAT MODEL
聊天模型,用于产生人类和AI之间的对话。
python 代码解读复制代码"""
本文件是【LangChain系统安装和快速入门】章节的配套代码,课程链接:https://juejin.cn/book/7387702347436130304/section/7388069981520724003
您可以点击最上方的“运行“按钮,直接运行该文件;更多操作指引请参考Readme.md文件。
"""
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)
在这段代码中,除了 temperature
、max_tokens
等参数,还有两个专属于 Chat 模型的概念:消息(messages)和角色(role)。
-
消息(messages) :传入模型的提示,通常是一个包含多个消息的列表。每个消息都有一个角色(role)和内容(content)。
- 角色(role)可以是
system
、user
或assistant
。 system
设定对话背景(例如 "你是一个很棒的智能助手")。user
是用户发出的请求(例如 "请给我的花店起个名")。assistant
是模型的回复,用于提供先前对话的上下文。
- 角色(role)可以是
生成的响应对象会包含一个或多个 choices
,每个 choice
包含一个 message
,而 message
也有 role
和 content
两个字段。
下面是回复的结果:
Chat模型和Text模型都有各自的优点,其适用性取决于具体的应用场景。
- Chat模型 更适合处理多轮交互对话的情况。它可以接受一个消息列表作为输入,包含
system
、user
和assistant
的历史信息,这样模型在生成回复时可以参考更多上下文信息。 - Text模型 更简单直接,适用于单轮文本生成任务。如果你只需要模型根据一个简单的提示生成一段文本,那么使用Text模型会更适合。
通过 LangChain 调用 Text 和 Chat 模型
Text Model
代码示例:
python 代码解读复制代码"""
本文件是【LangChain系统安装和快速入门】章节的配套代码,课程链接:https://juejin.cn/book/7387702347436130304/section/7388069981520724003
您可以点击最上方的“运行“按钮,直接运行该文件;更多操作指引请参考Readme.md文件。
"""
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.predict("请给我的花店起个名")
print(response)
输出结果为:
CHAT Model
代码示例:
python 代码解读复制代码"""
本文件是【LangChain系统安装和快速入门】章节的配套代码,课程链接:https://juejin.cn/book/7387702347436130304/section/7388069981520724003
您可以点击最上方的“运行“按钮,直接运行该文件;更多操作指引请参考Readme.md文件。
"""
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)
输出结果如下:
评论记录:
回复评论: