学习进度 · 登录后可记录
本课程为云平台 Jupyter 实践课,在 Notebook 终端中完成启动与配置。Odysseus 已预装在
/home/atomgit/odysseus(dev分支),无需克隆或安装依赖。
学完本课程后,你将能够:
建议学时: 约 1 小时(含动手操作)
实践说明: 在 Jupyter 页面打开终端(Terminal),将下文代码块中的命令逐段复制执行。
Odysseus 是一款自托管 AI 工作台——在服务器上提供类似 ChatGPT / Claude 的 Web 体验,数据留在你的工作区中。
本课程重点使用的功能:
| 功能 | 说明 |
|---|---|
| Chat(聊天) | 与 API 模型对话 |
| Agent(智能体) | 赋予工具后自动完成复杂任务 |
| Settings(设置) | 在页面内配置模型、搜索等,无需编辑配置文件 |
更多功能(Cookbook、Deep Research、Documents、Email 等)可在登录后自行探索,详见官方仓库。
参照官方 README Native Linux 流程:先运行 setup.py 配置管理员账号,再在 tmux 中启动 Web 服务。
步骤 1:初始化并配置管理员账号(首次使用)
cd /home/atomgit/odysseus
python3 setup.py按终端提示设置管理员用户名与密码。请牢记此处设置的账号密码,后续登录使用。
若此前已执行过
setup.py,可跳过本步骤。
步骤 2:在 tmux 中启动服务
cd /home/atomgit/odysseus
ID=$(jupyter notebook list | grep -oP 'online-action/\K[a-f0-9]+' | head -1)
tmux new-session -d -s odysseus \
"cd /home/atomgit/odysseus && ROOT_PATH=\"/online-action/${ID}/proxy/7000\" python -m uvicorn app:app --host 0.0.0.0 --port 7000 --root-path /online-action/${ID}/proxy/7000 2>&1 | tee /home/atomgit/odysseus/odysseus.log"查看启动日志(可选):
sleep 3
tail -50 /home/atomgit/odysseus/odysseus.log进入 tmux 实时查看输出(Ctrl+B 再 D 退出会话、保持服务运行):
tmux attach -t odysseus说明:
ID 来自 jupyter notebook list,用于 ROOT_PATH 与 --root-path,使反向代理路由正确--host 0.0.0.0,以便 Jupyter 代理能转发到 OdysseusROOT_PATH、--root-path 及访问 URL访问前,先确认服务已在运行:
tmux has-session -t odysseus 2>/dev/null && echo "tmux 会话 odysseus 运行中" || echo "未运行"
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:7000/返回 200 或 302 后,获取访问地址:
ID=$(jupyter notebook list | grep -oP 'online-action/\K[a-f0-9]+' | head -1)
echo "========================================"
echo " 请点击或复制以下地址到浏览器访问 Odysseus:"
echo "========================================"
echo "https://aihub-run.gitcode.com/online-action/${ID}/proxy/7000"
echo "========================================"将链接复制到浏览器,使用 2.1 节 setup.py 中设置的账号密码 登录。
若 HTTP 探测未返回
200或302,请回到 2.1 节检查启动。若修改了端口,请将 URL 末尾的7000改为实际端口。
停止:
tmux kill-session -t odysseus重启:
cd /home/atomgit/odysseus
ID=$(jupyter notebook list | grep -oP 'online-action/\K[a-f0-9]+' | head -1)
tmux kill-session -t odysseus 2>/dev/null
tmux new-session -d -s odysseus \
"cd /home/atomgit/odysseus && ROOT_PATH=\"/online-action/${ID}/proxy/7000\" python -m uvicorn app:app --host 0.0.0.0 --port 7000 --root-path /online-action/${ID}/proxy/7000 2>&1 | tee /home/atomgit/odysseus/odysseus.log"Jupyter 实例重启后,tmux 会话可能结束,需重新执行 2.1 或上表「重启」命令。
登录 Odysseus → Settings → Add Models → API Models,按下图填写:

| 字段 | 填写内容 |
|---|---|
| Endpoint URL | https://api-ai.gitcode.com/v1 |
| URL 类型 | Custom URL |
| API Key / 令牌 | 步骤 3.1 复制的 GitCode 令牌 |
| Type | LLM |
| Proxy | 留空 |
先点 Test 确认连接成功,再点 Add 添加。
deepseek-ai/DeepSeek-V4-Flash,以实际列表为准)若 Test 失败,请检查:Endpoint URL 是否含 /v1、令牌是否有效、账户是否有 AI 权限。
Agent 具备文件、Shell 等能力,请仅在可信环境中使用。
tmux has-session -t odysseus 2>/dev/null && tmux list-sessions | grep odysseus
curl -I http://127.0.0.1:7000/
tail -80 /home/atomgit/odysseus/odysseus.log| 现象 | 处理办法 |
|---|---|
| tmux 会话不存在 | 重新执行 2.1 节启动命令 |
| 端口被占用 | 换端口,并更新 ROOT_PATH、--root-path 及代理 URL |
| 代理 502 | 确认 --host 0.0.0.0,且 ROOT_PATH / --root-path 与代理路径一致 |
cd /home/atomgit/odysseus
python3 setup.py也可登录后在 Settings 中修改密码。
setup.py 设置足够强度的密码,勿与他人共享.env、data/ 中的密钥分享给他人打开 Jupyter 终端 → python3 setup.py(首次)→ tmux 启动(2.1)
→ 确认服务运行(2.2)→ 登录 → 配置 GitCode AI(第三章)→ Chat / Agent 体验# 访问地址
ID=$(jupyter notebook list | grep -oP 'online-action/\K[a-f0-9]+' | head -1)
echo "https://aihub-run.gitcode.com/online-action/${ID}/proxy/7000"
# 查看日志 / 进入 tmux / 停止 / 重启 — 见 2.1~2.3 节devOdysseus 最佳实践 · 云平台 Jupyter 实践课
登录后即可查看完整教程内容、运行代码和参
与学习互动
还没有账号?