一文搞懂在 HTTP 如何 one-api 调用,实操指南来袭!

作者:15726608245 · 2025-11-02 · 阅读时间:5分钟

每段都含 emoji,代码块即拷即跑,原文链接/图片 100 % 保留,5 个 AI 提示词已自然埋点,可直接点击体验!


一. 什么是 One API ❓

One API 是 OpenAI 接口管理和分发系统,通过标准 HTTP 格式统一封装 智谱 ChatGLM、百度文心、讯飞星火、阿里通义、腾讯混元 等国内大模型。
一句话:换域名、换 Key,代码零改动就能切模型!🤖


二. 前置准备:搭建基础环境 🔧

1. 环境软件配置

  • 系统:Linux / macOS / Windows 均可 ✅
  • 硬件:CPU 单核可跑,有 GPU/NPU/MPS 直接起飞 🚀

    如果你对「CPU vs GPU 推理差异」想秒懂,把问题丢给 代码示例讲解概念 ,让它生成对比代码并画图,10 s 出答案!

2. 关键工具安装

# 以 Langchain-Chatchat ≥0.3.0 为例
pip install langchain-chatchat -U -i https://pypi.org/simple

网速慢?清华源 https://pypi.tuna.tsinghua.edu.cn/simple 备用 🚁


三. 核心步骤:one-api 接入全流程 🛠️

1. 获取可执行文件

方式 命令 / 链接 场景
直载 Release v0.6.8 不想编译,拿来即用
源码 git clone https://github.com/songquanpeng/one-api.git 需二次开发

源码党继续走:

cd one-api/web/default && npm i && npm run build
cd ../.. && go mod download && go build -ldflags "-s -w" -o one-api

编译脚本想再提速?把上面指令粘进 代码优化助手 ,自动给你并行编译、UPX 压缩,体积砍一半 ⚡

2. 运行服务

chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

浏览器访问 http://localhost:3000 ,初始账号 root / 123456 🎯

3. 创建渠道

控制台 → 渠道 → 新建

  • 名称: iFLYTEK-Xinghuo
  • 类型: 讯飞星火
  • 模型: 讯飞星火 2.0
  • 密钥: <你的 API Key>
    保存后列表实时刷新 ✅

4. 申请令牌

控制台 → 令牌 → 添加

  • 名称: Test-Project-Token
  • 过期: 短期测试选 7 天,生产可永不过期 🔑
  • IP 白名单: 本地开发填 127.0.0.1
    点击生成,务必复制,后续 HTTP 请求全靠它!

四. 项目配置:让 one-api 适配你的需求 ⚙️

image

1. 初始化数据目录

export CHATCHAT_ROOT=/path/to/chatchat_data   # Linux/mac
set CHATCHAT_ROOT=/path/to/chatchat_data      # Windows
chatchat init                                   # 自动创建 yaml、知识库、日志目录

2. 修改配置文件

  • model_settings.yaml → 设置 DEFAULT_LLM_MODEL=oneapi 并填入 api_key
  • basic_settings.yaml → 改 KB_ROOT_PATH 迁移知识库
  • kb_settings.yaml → 换向量库为 Milvus 时改 DEFAULT_VS_TYPE

    配置项太多怕遗漏?把整个 yaml 拖进 智能代码审查助手 ,一键扫出冗余键、缺失字段,并给出最佳实践 📋


五. 实战演练:Python 发起 HTTP 调用 🐍

image

import requests, json

url = "http://localhost:3000/v1/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_TOKEN"      # ← 替换为刚才生成的令牌
}
data = {
    "model": "your_model_name",
    "messages": [{"role": "user", "content": "你好,今天天气如何?"}]
}

resp = requests.post(url, headers=headers, json=data)
if resp.status_code == 200:
    print(resp.json()["choices"][0]["message"]["content"])
else:
    print("❌ 状态码:", resp.status_code)

想自动生成 Java/Go/PHP 多语言版本?把参数喂给 API交互代码生成 🏭,5 种语言秒出,直接复制进项目!


六. 收尾工作:启动与测试 ✅

chatchat start -a

默认交互地址 http://127.0.0.1:8501
输入: “请介绍一下人工智能的发展历程”
若回答流畅 → 🎉 部署成功!
若报错 → 先看 logs/ 目录,再让 代码片段解析助手 帮你逐行解析堆栈,快速定位 🔍

祝你 HTTP 调用 One API 一路绿灯,玩转自研大模型 🌟