为什么调用chatgpt的api接口没有返回??怎么查问题
思路很简单:调用api,将api的返回值打印出来,看看报的什么错,然后根据错误来修改代码或逻辑,一步一步解决问题。举个例子#
import os
from openai import OpenAI
import openai
import requests
import time
import json
import time
API_SECRET_KEY = "xxxxxx";
BASE_URL = "https://api.zhizengzeng.com/v1/"
# chat
def chat_completions3(query):
client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL)
resp = client.chat.completions.create(
model="gpt-3.5-turbo-abc",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": query}
]
)
print(resp)
#print(resp.choices[0].message.content)
想办法,将openai的接口返回打印出来,也就是说不要以为 print(resp.choices[0].message.content) 这一行一定按预期的输出内容,有可能没网了呢?有可能报错了呢?有可能飞到火星去了呢?总之一切都有可能发生,所以要查问题,就要print(resp),就这么简单,看看返回什么{“error”: {“code”: “model_not_found”, “message”: “The model: gpt-3.5-turbo-abc
does not exist”, “param”: null, “type”: “invalid_request_error”}}常见的问题和错误#
1、要加一个请求头,api接口文档中有说明: curl -H “Content-Type: application/json” -H “Authorization: Bearer 你在智增增的key” -XPOST https://api.zhizengzeng.com/v1/chat/completions -d ‘{“messages”: [{“role”:”user”,”content”:”请介绍一下你自己”}]}’ | iconv -f utf-8 -t utf-82、messages传的不对,messages是array3、api_secret_key传的不对,不能再传openai的key了,你要传你从智增增拿到的key(不需要有openai的key)4、如果是python,注意openai包的版本要对,它升级了!!要注意,关键是base_url要设置成智增增的,如果这个不正确,其它肯定都不行。所以一定要注意他在不同的包中base_url的设置方式,目前已知的是:在老版本中的设置方式是:openai.api_base = BASE_URL,而在新版本中的设置方式是:client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL),别问为什么,问就是openai的锅File “/usr/local/lib/python3.11/site-packages/openai/_base_client.py”, line 1509, in _request
opengpts-backend | raise APIConnectionError(request=request) from err
opengpts-backend | openai.APIConnectionError: Connection error.这基本就是base_url没有设置对,也就是说你的请求连到openai去了,那可不超时,可不连接不上嘛。所以检查下base_url的设置是否正确 修改于 2024-06-03 04:51:30