跳到主要内容
请确保 OpenAI 库版本低于 1.0.0;否则,请参考新文档OpenAI 适配器 许多人从 OpenAI 开始,但想探索其他模型。LangChain 与许多模型提供商的集成使得这样做变得容易。虽然 LangChain 有自己的消息和模型 API,但我们还通过提供一个适配器来使 LangChain 模型适应 OpenAI API,从而尽可能方便地探索其他模型。 目前,这仅处理输出,不返回其他信息(令牌计数、停止原因等)。
import openai
from langchain_community.adapters import openai as lc_openai

ChatCompletion.create

messages = [{"role": "user", "content": "hi"}]
原始 OpenAI 调用
result = openai.ChatCompletion.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0
)
result["choices"][0]["message"].to_dict_recursive()
{'role': 'assistant', 'content': 'Hello! How can I assist you today?'}
LangChain OpenAI 包装器调用
lc_result = lc_openai.ChatCompletion.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0
)
lc_result["choices"][0]["message"]
{'role': 'assistant', 'content': 'Hello! How can I assist you today?'}
更换模型提供商
lc_result = lc_openai.ChatCompletion.create(
    messages=messages, model="claude-2", temperature=0, provider="ChatAnthropic"
)
lc_result["choices"][0]["message"]
{'role': 'assistant', 'content': ' Hello!'}

ChatCompletion.stream

原始 OpenAI 调用
for c in openai.ChatCompletion.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0, stream=True
):
    print(c["choices"][0]["delta"].to_dict_recursive())
{'role': 'assistant', 'content': ''}
{'content': 'Hello'}
{'content': '!'}
{'content': ' How'}
{'content': ' can'}
{'content': ' I'}
{'content': ' assist'}
{'content': ' you'}
{'content': ' today'}
{'content': '?'}
{}
LangChain OpenAI 包装器调用
for c in lc_openai.ChatCompletion.create(
    messages=messages, model="gpt-3.5-turbo", temperature=0, stream=True
):
    print(c["choices"][0]["delta"])
{'role': 'assistant', 'content': ''}
{'content': 'Hello'}
{'content': '!'}
{'content': ' How'}
{'content': ' can'}
{'content': ' I'}
{'content': ' assist'}
{'content': ' you'}
{'content': ' today'}
{'content': '?'}
{}
更换模型提供商
for c in lc_openai.ChatCompletion.create(
    messages=messages,
    model="claude-2",
    temperature=0,
    stream=True,
    provider="ChatAnthropic",
):
    print(c["choices"][0]["delta"])
{'role': 'assistant', 'content': ' Hello'}
{'content': '!'}
{}

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.