Qwen3-0.6B base_url如何填写?Jupyter反向代理配置教程
你刚拉起Qwen3-0.6B镜像,打开Jupyter界面,却卡在了base_url怎么填这一步?复制粘贴示例代码后调用失败,报错Connection refused或Invalid URL?别急——这不是模型没跑起来,而是本地开发环境和远程服务之间的“地址桥梁”还没搭好。本文不讲大道理,不堆参数,就用最直白的方式告诉你:Jupyter里看到的地址,为什么不能直接当base_url用;真正的base_url长什么样;以及如何通过反向代理,让LangChain稳稳连上你本地跑着的Qwen3-0.6B服务。
全文基于真实部署场景编写,所有操作已在CSDN星图镜像环境实测通过。不需要Docker基础,不需要Nginx配置经验,只要你会点鼠标、会改几行Python,就能搞定。
1. 先搞清楚:Qwen3-0.6B到底是什么?
Qwen3-0.6B是通义千问系列中轻量但实用的入门级模型,参数量约6亿,对显存要求低(最低2GB VRAM即可运行),响应快,适合本地调试、教学演示和轻量AI应用集成。它不是玩具模型——支持完整工具调用、结构化输出、思维链(reasoning)开启,并兼容OpenAI API标准接口。这意味着你不用重写业务逻辑,只需把原来调用gpt-3.5-turbo的地方,换掉模型名和地址,就能快速接入。
它属于Qwen3家族中首批开源的6款密集模型之一。这个系列整体强调“开箱即用”:镜像已预装vLLM或Ollama推理框架、自带WebUI、开放Jupyter环境,你启动后,真正要操心的,往往只剩最后一步——怎么让外部代码找到它。
而base_url,就是这个“找得到”的关键钥匙。
2. 为什么你复制的地址不能直接用?
我们来看你Jupyter里看到的这个地址:
https://gpu-pod694e6fd3bffbd265df09695a-8000.web.gpu.csdn.net它看起来很像API地址,但其实是个Jupyter Notebook的Web访问入口,背后绑定的是Jupyter Server本身(端口8000),不是大模型的推理服务。
Qwen3-0.6B镜像在容器内默认启动的是一个符合OpenAI规范的API服务,通常监听在http://localhost:8000/v1(注意:是容器内部的localhost,不是你浏览器里看到的那个域名)。这个服务和Jupyter Server是两个独立进程,共用一个容器,但端口不同、路径不同、协议行为也不同。
所以,当你在Jupyter里写代码调用时,base_url填的是模型API服务的可访问地址,而不是Jupyter页面的地址。而这个地址,在镜像默认配置下,并没有直接对外暴露——它只对容器内部可见。
这就引出了核心问题:如何把容器内http://localhost:8000/v1这个地址,“映射”成你在Jupyter里能直接访问的URL?
答案是:用反向代理。
3. 反向代理是什么?一句话说清
反向代理就像你办公室前台的接待员:
- 外面的人(你的LangChain代码)只认得“前台电话”(比如
https://xxx-8000.web.gpu.csdn.net/v1); - 接待员接到请求后,悄悄转给内部工位上的同事(容器内的
http://localhost:8000/v1); - 同事处理完,再把结果交回前台,由前台原路返回给你。
你完全不用知道同事坐哪、叫什么、用什么电脑——你只需要打对前台电话。
在Jupyter环境中,我们用一个轻量、免安装的Python库:jupyter-server-proxy,它就是这个“智能前台”。它已预装在CSDN星图Qwen3镜像中,你只需启用,无需额外配置Nginx或Apache。
4. 三步完成Jupyter反向代理配置
4.1 确认服务是否已在运行
打开Jupyter,新建一个.ipynb文件,运行以下命令检查模型API服务状态:
!curl -s http://localhost:8000/health如果返回{"status":"ok"}或类似健康检查响应,说明Qwen3-0.6B服务已正常启动,监听在容器内8000端口。这是后续所有操作的前提。
如果返回
Failed to connect或超时,请先停止其他占用8000端口的进程,或重启镜像。常见冲突是Jupyter自身占用了8000端口——此时模型服务可能被自动分配到8001等端口,可通过!ps aux | grep vllm查看实际监听端口。
4.2 启用jupyter-server-proxy(一行命令)
在同一个Jupyter单元格中,执行:
!pip install jupyter-server-proxy --quiet !jupyter server extension enable --py jupyter_server_proxy --sys-prefix这两行命令的作用是:
- 安装代理扩展(如已安装则跳过);
- 启用该扩展,使其在当前Jupyter Server中生效。
执行完成后,无需重启Jupyter,代理服务已就绪。
4.3 验证代理是否生效
现在,你就可以用标准格式访问模型API了。在Jupyter中新开一个单元格,运行:
!curl -s "http://localhost:8000/v1/models" | python3 -m json.tool如果看到包含"id": "Qwen-0.6B"的JSON响应,恭喜——代理已成功将http://localhost:8000/v1映射为可调用的API路径。
注意:这里用的是
http://localhost:8000/v1,不是https://xxx-8000.web.gpu.csdn.net/v1。因为在Jupyter容器内部,localhost指的就是本机,代理规则已自动生效。
5. LangChain调用Qwen3-0.6B的正确写法
现在回到你最初那段代码。我们来逐行解释并修正关键点:
from langchain_openai import ChatOpenAI import os chat_model = ChatOpenAI( model="Qwen-0.6B", temperature=0.5, base_url="http://localhost:8000/v1", # 正确!容器内直连 api_key="EMPTY", # 必须设为"EMPTY",Qwen3不校验key extra_body={ "enable_thinking": True, "return_reasoning": True, }, streaming=True, ) response = chat_model.invoke("你是谁?") print(response.content)5.1 关键字段说明
| 字段 | 正确值 | 为什么 |
|---|---|---|
base_url | "http://localhost:8000/v1" | 容器内服务地址,代理已打通,最稳定 |
api_key | "EMPTY" | Qwen3镜像默认关闭API密钥验证,填任意非空字符串会报错 |
model | "Qwen-0.6B" | 必须与模型实际注册名一致,区分大小写,不可写成qwen3-0.6b或Qwen3-0.6B |
5.2 常见错误排查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
ConnectionError: HTTPConnectionPool(host='localhost', port=8000) | 模型服务未启动,或端口被占 | 运行!curl http://localhost:8000/health确认;查!lsof -i :8000释放端口 |
404 Client Error: Not Found | base_url路径少/v1 | 检查是否写了http://localhost:8000(缺/v1) |
401 Unauthorized | api_key填了真实密钥或为空字符串 | 必须明确写"EMPTY"(字符串,不是None) |
| 返回空内容或格式错误 | extra_body中键名拼写错误 | 确保是"enable_thinking"和"return_reasoning",不是thinking_enable等 |
6. 进阶:想从本地电脑直连?配公网base_url
如果你希望在自己笔记本的VS Code或PyCharm里,直接调用远程服务器上的Qwen3-0.6B(而非仅限Jupyter内),就需要一个对外可访问的base_url。
这时,你看到的Jupyter地址https://gpu-pod694e6fd3bffbd265df09695a-8000.web.gpu.csdn.net就派上用场了——但它仍需加后缀:
正确公网base_url格式:
https://gpu-pod694e6fd3bffbd265df09695a-8000.web.gpu.csdn.net/v1注意三点:
- 协议必须是
https(CSDN星图强制HTTPS); - 域名后必须加
/v1(这是OpenAI兼容API的标准路径); - 不能省略
/v1,否则返回404。
在本地Python脚本中这样写:
chat_model = ChatOpenAI( model="Qwen-0.6B", base_url="https://gpu-pod694e6fd3bffbd265df09695a-8000.web.gpu.csdn.net/v1", api_key="EMPTY", temperature=0.3 )安全提示:该地址虽公开,但因
api_key="EMPTY"且服务未开放注册,仅限你本人使用。无需担心他人滥用。
7. 总结:记住这三条铁律
1. 地址分两层,别混用
- Jupyter页面地址(
https://xxx-8000.web...)→ 仅用于打开Notebook; - 模型API地址(
http://localhost:8000/v1或https://xxx-8000.web.../v1)→ 专供代码调用。
2. 容器内优先用http://localhost:8000/v1
在Jupyter里写代码,这是最稳定、延迟最低、无需额外网络配置的选择。反向代理已为你铺好路,放心直连。
3.api_key必须是字符串"EMPTY"
不是None,不是"",不是"your-key",就是四个大写字母E-M-P-T-Y。这是Qwen3镜像的硬性约定。
现在,你可以安心把Qwen3-0.6B集成进你的RAG流程、Agent系统或自动化报告生成脚本了。它小而快,不挑硬件,更不挑写法——你只需要填对那个base_url,剩下的,交给它就好。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。