跳到主要內容
Open In ColabOpen on GitHub

OpenAI 介面卡(舊版)

請確認 OpenAI 函式庫版本低於 1.0.0;否則,請參考新版文件 OpenAI 介面卡

許多人從 OpenAI 開始使用,但希望探索其他模型。LangChain 與眾多模型供應商的整合讓這件事變得容易許多。雖然 LangChain 有自己的訊息和模型 API,我們也盡可能讓探索其他模型變得容易,透過公開一個介面卡來調整 LangChain 模型以相容於 OpenAI API。

目前這僅處理輸出,不回傳其他資訊(token 數量、停止原因等)。

import openai
from langchain_community.adapters import openai as lc_openai
API 參考文件: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': '!'}
{}

此頁面是否對您有幫助?