关于OpenAI /v1/chat/completions端点适配多GPT模型的问题咨询
问题原因与解决方案
核心原因
你遇到的问题不是端点弃用,而是模型类型与API端点不匹配:
- OpenAI的模型分为两类:
- 文本补全模型:如
gpt-3.5-turbo-instruct,仅支持/v1/completions端点 - 聊天模型:如
gpt-3.5-turbo、gpt-4-turbo等,仅支持/v1/chat/completions端点
- 文本补全模型:如
- 你用LangChain的
OpenAI类初始化模型时,这个类默认调用的是/v1/completions端点,所以用聊天模型会触发错误;而gpt-3.5-turbo-instruct属于补全模型,能正常工作。
正确实现方式
要使用聊天模型(包括大部分GPT-3.5和所有GPT-4系列模型),需要改用LangChain的ChatOpenAI类,它会自动调用/v1/chat/completions端点:
from langchain_openai import ChatOpenAI # 初始化聊天模型 chat_llm = ChatOpenAI(model='gpt-4-turbo') # 调用模型示例(需传入聊天消息格式) from langchain.schema import HumanMessage, SystemMessage messages = [ SystemMessage(content="你是一个专业的技术助手"), HumanMessage(content="请解释OpenAI模型的端点差异") ] response = chat_llm.invoke(messages) print(response.content)
关键注意事项
- 如果需要使用
gpt-3.5-turbo-instruct这类补全模型,继续用OpenAI类即可 - 聊天模型的调用格式是消息列表(包含系统消息、用户消息等),和补全模型的纯文本输入格式不同
- 你的账户权限没问题,问题完全出在模型类型与LangChain类的匹配错误
内容的提问来源于stack exchange,提问作者Boddula Rishil
相关产品推荐
相关产品推荐

