返回案例库

精选案例 · Agent / 实践案例

校外访问 USTC Token-API 的教程

这个案例围绕「校外访问 USTC Token-API 的教程」记录了一条真实 AI 实践线索,正文重点集中在「准备工作」「配置步骤」,适合先按任务意图阅读再判断复用。

案例速读

README 标题「校外访问 USTC Token-API 的教程」下已经出现运行/配置路径、脚本或接口线索、结果证据,正文重点集中在「准备工作」「配置步骤」,比纯概念介绍更适合进入精选阅读流。 这篇案例的阅读价值在于,它把真实任务、模型辅助过程和可迁移做法放在同一个上下文里,读者可以从 「校外访问 USTC Token-API 的教程」、「准备工作」、「配置步骤」、「校内网络环境的跳板机」 进入正文。

  • 建议重点看 可参考其中的运行与配置路径、包含可迁移的命令、脚本或接口线索、已有结果或观测证据可用于判断复用价值。结合 Agent / 实践案例 和「任务驱动用户、AI 实践者」这一受众定位,它更适合作为任务检索后的精读材料,而不是只看一句短摘要后快速跳过。
  • 正文目录和原始材料仍然是判断依据;导读只帮助你更快定位阅读重点。
看点
校外访问 USTC Token-API 的教程
读者
任务驱动用户、AI 实践者
复用
可参考其中的运行与配置路径
结构
5 个目录入口

原文内容

校外访问 USTC Token-API 的教程

前情提要:我是中科大的博后,日常工作的环境处于校外网络,但是现在的 USTC Token-API 只能在校内访问,给工作带来了不便。为解决这一问题,参考 QQ 群群友和 Deepseek-v4-flash-ascend 模型的经验,最终实现了在校外环境下的 MAC MINI 台式机上配置 USTC Token-API 作为 Claude Code 的后端服务。

本教程以 deepseek-v4-flash-ascend 模型为例,其他模型可以参考类似的步骤进行配置。

准备工作

  1. 已经从 USTC 获取了 Token:通过 llm.ustc.edu.cn 网站申请并获取了 Token,格式为 sk-xxx.
  2. 校内网络环境的跳板机:通过 vlab.ustc.edu.cn 申请了一台跳板机(虚拟机)
  3. 校外网络环境的台式机:我使用的是 MAC MINI M4,操作系统为 macOS Tahoe 26.5.

配置步骤

校内网络环境的跳板机

  1. 连接到跳板机:
ssh ubuntu@vlab.ustc.edu.cn

输入学号和密码,成功登录后进入命令行界面。

  1. 基于 uv 安装一系列依赖:
uv venv
uv init
source .venv/bin/activate
uv pip install --upgrade pip
uv add fastapi uvicorn httpx litellm[proxy]
  1. 运行proxy-server.py,监听 4000 端口,注意将文件中的API_KEY替换为你从 USTC 获取的 Token
tmux new -s proxy-server
uv run proxy-server.py
  1. 在跳板机上使用 curl 测试是否能够成功访问 USTC Token-API:
 curl -v http://localhost:4000/v1/messages \
    -H "Content-Type: application/json" \
    -H "x-api-key: sk-xxx" \
    -H "anthropic-version: 2023-06-01" \
    -d '{
      "model": "deepseek-v4-flash-ascend",
      "max_tokens": 100,
      "messages": [{"role": "user", "content": "say hi"}]
    }'

此时应该能够看到返回的响应,说明代理服务器配置成功。

* Connected to localhost (127.0.0.1) port 4000
> POST /v1/messages HTTP/1.1
> Host: localhost:4000
> User-Agent: curl/8.5.0
> Accept: */*
> Content-Type: application/json
> x-api-key: sk-xxx
> anthropic-version: 2023-06-01
> Content-Length: 133
>
< HTTP/1.1 200 OK
< date: Tue, 19 May 2026 11:01:12 GMT
< server: uvicorn
< date: Tue, 19 May 2026 11:01:12 GMT
< server: uvicorn
< content-length: 765
< content-type: application/json
< x-litellm-call-id: b1468762-9c76-4350-b3ff-d799b97c560f
< x-litellm-model-id: 884b14d4-814a-4c3d-9a9b-c984b26cb4f4
< x-litellm-version: 1.85.0
< x-litellm-response-cost-original: 0.0
< x-litellm-response-cost-discount-amount: 0.0
< x-litellm-response-cost-margin-amount: 0.0
< x-litellm-response-cost-margin-percent: 0.0
< x-litellm-key-rpm-limit: 20
< x-litellm-key-max-budget: 100.0
< x-litellm-key-spend: 0.0
<
* Connection #0 to host localhost left intact
{"id":"msg_fd581667e3cc4bfc85c093cc13458312","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"Okay, the user just said \"say hi\". This is a simple greeting request. They likely want me to respond in a friendly, welcoming manner. Since they used lowercase \"hi\", a matching casual and warm tone is appropriate. \n\nI should keep it simple and direct. Just return a greeting, maybe add a smiley to convey a positive attitude. No need for extra explanation or questions here. \n\nA straightforward \"Hi! 👋\" would be perfect. It acknowledges the request, matches the","signature":""}],"model":"deepseek-v4-flash-ascend","stop_reason":"max_tokens","stop_sequence":null,"usage":{"input_tokens":6,"output_tokens":100,"total_tokens":106}}

同时,在刚才打开的 tmux 窗口中也会显示相关的日志信息,说明请求已经成功通过代理服务器转发到 USTC Token-API 并获得了响应。

INFO:     127.0.0.1:47968 - "POST /v1/messages HTTP/1.1" 200 OK

校外网络环境的台式机

  1. 通过 Homebrew 安装 Claude Code 和 CC-Switch:
brew install --cask claude-code
brew install --cask cc-switch
  1. 开启一个 tmux 窗口,设置隧道转发,将本地的 4000 端口转发到跳板机的 4000 端口:
ssh -L 4000:localhost:4000 -N ubuntu@vlab.ustc.edu.cn
  1. 在命令行里测试是否能够成功访问 USTC Token-API:
curl -v http://localhost:4000/v1/messages \
    -H "Content-Type: application/json" \
    -H "x-api-key: sk-xxx" \
    -H "anthropic-version: 2023-06-01" \
    -d '{
      "model": "deepseek-v4-flash-ascend",
      "max_tokens": 100,
      "messages": [{"role": "user", "content": "say hi"}]
    }'

应该会有和前一步骤类似的响应,说明在校外环境下也能够成功访问 USTC Token-API。

  1. 在 CC-Switch 中添加一个新的模型配置,如下图所示 alt text alt text
{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:4000",
    "ANTHROPIC_MODEL": "deepseek-v4-flash-ascend[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash-ascend[1m]",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash-ascend[1m]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-flash-ascend[1m]",
    "ANTHROPIC_API_KEY": "sk-xxx"
  },
  "effortLevel": "max"
}
  1. 在命令行中测试 Claude Code能否使用:
claude

此时跳板机的 tmux 窗口中会显示相关的日志信息:

INFO:     127.0.0.1:54216 - "HEAD / HTTP/1.1" 200 OK

说明 Claude Code 已经成功通过代理服务器访问了 USTC Token-API,可以正常使用了。

返回顶部