使用Aihubmix API 服務中遇到錯誤與解決

六一路晗晗發表於2024-03-28

HTTP code 200 from API (<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="https://yinchao.oss-cn-hangzhou.aliyuncs.com/orisoundlogo.jpg"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#ffffff"/><meta name="description" content="OpenAI API 模型介面聚合管理,一鍵整合google gemini、百度等模型,統一用open AI介面標準進行調研不同模型;支援最新模型;支援高併發;在一個地方訪問所有AI模型;"/><title>AiHubMix</title><script defer="defer" src="/static/js/main.e3829e34.js"></script><link href="/static/css/main.bd618626.css" rel="stylesheet"

出現以上的報錯資訊,分析錯誤:
(1)code 200說明API通訊正常,執行了正常的http握手
(2)後面返回了一串說明,表明aihubmix的服務是正常的,為了實現

因此可能的原因是引數設定錯誤

排查原始的程式碼,aihubmix.com採用的是openai相容api形式,但是除了正常的規定模型引數之外,需要修改openai的base url。原始程式碼如下:

import openai
openai.api_key = "your key"
openai.api_base = "https://aihubmix.com/"
response = openai.ChatCompletion.create(
                    # api_base="https://aihubmix.com/",
                    model="gpt-4-1106-preview",
                    messages=[
                        {
                            "role": "user",
                            "content": "prompt"
                        }
                    ],
                    temperature=0,
                    max_tokens=1024,
                    top_p=0,
                    frequency_penalty=0,
                    presence_penalty=0
                )

因此問題既有可能出現在aihubmix的網址上,我們進入到openai的方法上進行檢視,原始openai api是如何宣告的
api_base = os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1") api_type = os.environ.get("OPENAI_API_TYPE", "open_ai")
可以看到原始openai的base url設定包含了一個v1
因此把原始請求的url新增一個v1即可
openai.api_base = "https://aihubmix.com/v1"

這樣程式執行正常。
這個方法同樣適用其他的替換服務。

相關文章