编程助手学Python--Deepseek对Langchain的调用OpenAI的GPT-3.5模型生成对话回复的理解
- 1. 导入库
- 2. 设置环境变量
- 3. 读取环境变量
- 4. 初始化 OpenAI LLM 对象
- 5. 调用模型生成文本
- 6. 代码中的问题
- 7. 修正后的完整代码
- 8. 运行结果
- 总结
from langchain.llms import OpenAI
import osos.environ["OPENAI_API_KEY"] = "sk-xx"
os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"openai_api_key = os.getenv("OPENAI_API_KEY")
openai_api_base = os.getenv("OPENAI_API_BASE")
print(apikey)
print(base)llm = OpenAI(model="gpt-3.5-turbo-instruct",temperature=0,openai_api_key=openai_api_key,openai_api_base=openai_api_base
)res = llm.predict("How are you today?")
print(res)
以下是对代码的详细解释,包括每个部分的功能、潜在问题以及修正建议:
1. 导入库
from langchain.llms import OpenAI
import os
langchain.llms
:langchain
是一个用于构建基于大语言模型(LLM)应用的框架。OpenAI
是langchain
中用于与 OpenAI 模型交互的类。os
:Python 标准库,用于与操作系统交互,例如读取环境变量。
2. 设置环境变量
os.environ["OPENAI_API_KEY"] = "sk-xx"
os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"
os.environ
:用于设置或读取环境变量。OPENAI_API_KEY
:OpenAI API 的密钥,用于身份验证。"sk-xx"
是示例密钥,实际使用时需要替换为有效的 API 密钥。OPENAI_API_BASE
:OpenAI API 的基础 URL。这里设置为"https://ai.com/v1"
,可能是自定义的 API 端点(例如,使用代理或本地部署的 OpenAI 兼容服务)。
3. 读取环境变量
openai_api_key = os.getenv("OPENAI_API_KEY")
openai_api_base = os.getenv("OPENAI_API_BASE")
print(apikey)
print(base)
os.getenv
:从环境变量中读取值。openai_api_key
和openai_api_base
:分别存储 API 密钥和 API 基础 URL。print(apikey)
和print(base)
:这里代码有误,变量名应该是openai_api_key
和openai_api_base
,而不是apikey
和base
。
4. 初始化 OpenAI LLM 对象
llm = OpenAI(model="gpt-3.5-turbo-instruct",temperature=0,openai_api_key=openai_api_key,openai_api_base=openai_api_base
)
OpenAI
:langchain
提供的类,用于与 OpenAI 模型交互。- 参数说明:
model
:指定使用的模型,这里是"gpt-3.5-turbo-instruct"
,适用于指令类任务。temperature
:控制生成文本的随机性。0
表示完全确定性输出,适合需要精确答案的任务。openai_api_key
:API 密钥,这里正确使用了openai_api_key
变量。openai_api_base
:API 基础 URL,这里正确使用了openai_api_base
变量。
5. 调用模型生成文本
res = llm.predict("How are you today?")
print(res)
llm.predict
:调用OpenAI
对象的predict
方法,向模型发送输入文本"How are you today?"
,并返回生成的文本。print(res)
:输出模型的生成结果。
6. 代码中的问题
-
变量名错误:
-
在
print(apikey)
和print(base)
中,变量名应该是openai_api_key
和openai_api_base
。 -
修正后的代码:
print(openai_api_key) print(openai_api_base)
-
-
API 密钥的安全性:
- 将 API 密钥硬编码在代码中是不安全的,建议通过环境变量或配置文件管理密钥。
-
模型名称:
"gpt-3.5-turbo-instruct"
是一个有效的模型名称,但需要确保 OpenAI API 支持该模型。
7. 修正后的完整代码
from langchain.llms import OpenAI
import os# 设置环境变量
os.environ["OPENAI_API_KEY"] = "sk-xx" # 替换为你的 API 密钥
os.environ["OPENAI_API_BASE"] = "https://ai.com/v1" # 替换为你的 API 基础 URL# 读取环境变量
openai_api_key = os.getenv("OPENAI_API_KEY")
openai_api_base = os.getenv("OPENAI_API_BASE")
print("API Key:", openai_api_key)
print("API Base:", openai_api_base)# 初始化 OpenAI LLM 对象
llm = OpenAI(model="gpt-3.5-turbo-instruct",temperature=0,openai_api_key=openai_api_key, # 使用正确的变量openai_api_base=openai_api_base # 使用正确的变量
)# 调用模型生成文本
res = llm.predict("How are you today?")
print(res)
8. 运行结果
假设 API 密钥和基础 URL 正确,模型会返回对输入 "How are you today?"
的响应,例如:
I'm just a computer program, so I don't have feelings, but thank you for asking! How can I assist you today?
总结
这段代码演示了如何使用 langchain
和 OpenAI 模型进行文本生成。关键点包括:
- 正确设置和读取环境变量。
- 初始化
OpenAI
对象时传递正确的参数。 - 调用
predict
方法生成文本。
修正代码中的错误后,可以顺利运行并得到预期结果。