songquanpeng / one-api

OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.
https://openai.justsong.cn/
MIT License
19.41k stars 4.32k forks source link

GitHub Models 渠道使用 gpt-4o 模型报错 Resource not found #1901

Open tisfeng opened 3 weeks ago

tisfeng commented 3 weeks ago

例行检查

问题描述

我添加 GitHub Models 作为 OpenAI 渠道,测试其他模型例如 Llama-3.2-90B-Vision-Instruct 都是成功的,但 gpt-4o,gpt-4o-mini 等模型报错 Resource not found。

我确认我的 GitHub 账号有 gpt-4o 等模型的权限,我正常使用 HTTP 接口运行都没有问题,是否 one-api 对 gpt-4o 等模型有特殊处理,导致异常?

image

复现步骤

预期结果

GitHub Models 渠道能正常使用 gpt-4o 模型。

相关截图

https://github.com/user-attachments/assets/2cb5aca5-0a40-496e-9db4-1758d80ee6d6

assassinliujie commented 3 weeks ago

请使用azure openai,而不是openai 图片

tisfeng commented 3 weeks ago

为什么要用 azure openai ?我看 GitHub Models 文档显示,这个就是标准的 OpenAI 接口,我直接这样调用是没有问题的。

测试其他模型例如 Llama-3.2-90B-Vision-Instruct 都是成功的,但 gpt-4o,gpt-4o-mini 等模型报错 Resource not found。

我没看代码实现,只是对这一点感到很奇怪。

curl -X POST "https://models.inference.ai.azure.com/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $GITHUB_TOKEN" \
    -d '{
        "messages": [
            {
                "role": "system",
                "content": ""
            },
            {
                "role": "user",
                "content": "Can you explain the basics of machine learning?"
            }
        ],
        "model": "gpt-4o-mini",
        "temperature": 1,
        "max_tokens": 4096,
        "top_p": 1
    }'
tisfeng commented 3 weeks ago

@assassinliujie 假如要改用 azure openai,API 版本填什么?我没看到文档有写这个值。

image
tisfeng commented 3 weeks ago

奇怪,我改用 Azure OpenAI,使用默认版本后,gpt-4o 和 gpt-4o-mini 确实可以使用了 😓

就是用 o1-mini 这些模型时也会遇到这问题 https://github.com/songquanpeng/one-api/issues/1902

image
tisfeng commented 3 weeks ago

看了一下 OpenAI 文档,o1 系列已经改用 max_completion_tokens 替代 max_tokens 了。

This value is now deprecated in favor of max_completion_tokens, and is not compatible with o1 series models.