为什么调用chatgpt的api接口没有返回??怎么查问题

智增增api3个月前更新 zhizengzeng
370 0

有些同学提问api接口没有返回。。。

思路很简单:调用api,将api的返回值打印出来,看看报的什么错,然后根据错误来修改代码或逻辑,一步一步解决问题。

一定不要幻想写个代码,然后就100%成功

举个例子,比如下面这个问题:

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.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”}}

结果发现是model名字不对,修改名字就ok了

下面列出一些常见的问题和错误,供参考:

1、要加一个请求头,api接口文档中有说明: curl -H “Content-Type: application/json” -H “Authorization: Bearer 你在智增增的key” -XPOST https://flag.smarttrot.com/v1/chat/completions -d ‘{“messages”: [{“role”:”user”,”content”:”请介绍一下你自己”}]}’ | iconv -f utf-8 -t utf-8

2、messages传的不对,messages是array

3、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的锅

5、报连接错误,类似下面这样:

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的设置是否正确

不一一列举了,核心是分析问题、查找问题、解决问题

 

© 版权声明

相关文章

暂无评论

暂无评论...