Tabby 本地 AI 代码补全:3 条命令跑通自托管 AI 编程助手
【免费下载链接】tabbySelf-hosted AI coding assistant项目地址: https://gitcode.com/GitHub_Trending/tab/tabby
Tabby 是一个自托管的 AI 编程助手,把代码补全和问答能力搬到你自己的服务器上,代码不用离开内网。如果你想要一套不依赖云端、可接入现有 IDE 的本地 AI 代码补全,它就是为这类场景设计的。
跑通篇:从启动到看到界面
最短路径是 Docker 一条命令。有 NVIDIA 显卡时按下文启动,没有则把--gpus all和--device cuda去掉(详见后文"无 GPU 怎么办")。
docker run -d --name tabby --gpus all -p 8080:8080 -v $HOME/.tabby:/data \ registry.tabbyml.com/tabbyml/tabby \ serve --model StarCoder-1B --chat-model Qwen2-1.5B-Instruct --device cuda几个常用参数的作用、默认值、何时该改:
--model:代码补全用的模型,示例用 StarCoder-1B;想在质量和响应速度之间权衡时换更大的模型。--chat-model:聊天/问答用的模型,示例用 Qwen2-1.5B-Instruct;想让回答更懂代码时换 7B 级模型。--device:推理设备,cuda或cpu;没有 GPU 就改成cpu。--parallelism:并发请求数,默认值以官方文档为准;多人同时接入时调高。--inference-type:推理后端(llama-cpp、vllm 等);上 7B 以上大模型或想用多卡时再改。
启动后浏览器访问http://localhost:8080,能打开注册页就说明服务起来了。第一个注册的账号会拿到 owner 角色,之后用来邀请成员或改设置。
详细启动选项(推理类型、并发)见 Docker 安装文档。
编辑器接入
Tabby 服务端跑起来后,剩下的是把编辑器连上去。主流编辑器都走"填 Endpoint + 访问令牌"这一步,区别只在入口。
| IDE | 支持状态 | 接入入口 |
|---|---|---|
| VS Code | 完全支持 | 扩展市场搜 "Tabby" |
| IntelliJ | 完全支持 | JetBrains 插件市场 |
| Vim / Neovim | 支持 | 插件管理器安装 tabby.vim |
| Eclipse | 支持 | 手动安装插件(archive 导入) |
| 其他编辑器 | 支持 | 通过 LSP agent(tabby-agent) |
Eclipse 装完插件后从工作台图标启动,会看到 Tabby 面板挂进编辑器侧栏:
以 VS Code 为例,只需两处设置:填入服务端给出的 Endpoint,再填访问令牌(在 Tabby 首页可复制)。字段名以扩展设置页为准。
{ "tabby.endpoint": "http://localhost:8080", "tabby.token": "在 Tabby 首页复制的个人访问令牌" }设好后状态栏出现已连接图标,光标停在代码里就会开始给补全。
模型与资源匹配
选模型别从"想要多强的模型"出发,先从你手里的显存倒推。官方模型注册表给的硬件档位是:1B–3B 模型至少配 T4、GTX 10/20 系显卡或 Apple Silicon;7B–13B 模型建议 V100/A100、30/40 系显卡。完整清单和许可证以 模型注册表 为准。
无 GPU 的机器能跑,但要接受响应慢:用--device cpu,或改用 CPU 版 entrypoint(具体镜像入口以官方文档为准)。
按硬件倒推的两组搭配:
| 档位 | 你的硬件 | 补全模型(--model) | 聊天模型(--chat-model) |
|---|---|---|---|
| 开箱即用 | 8GB 显存 / 入门 GPU | StarCoder-1B | Qwen2-1.5B-Instruct |
| 进阶 | 12GB+ 显存 / 中高端 GPU | StarCoder2-3B 或 DeepSeekCoder-6.7B | Qwen2.5-Coder-7B-Instruct |
模型显存需求的实际占用受推理后端和上下文长度影响,落地前先用小模型验证,再逐步放大。
生产环境要做的 3 件事
把 Tabby 从"自己玩"变成"团队用",重点在反向代理、认证、资源限制这三块,别漏了 WebSocket。
反向代理。Tabby 是 HTTP 服务,套一层 Nginx 即可;关键是 answer engine 走 WebSocket 流式输出,代理必须放行 Upgrade 头,否则聊天会卡住。
location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }认证。默认第一个账号即 owner,团队场景建议再开 SSO/LDAP(官方支持 GitLab SSO、LDAP 等),避免每个成员单独要令牌。相关配置见 反向代理与部署文档。
资源与日志。给容器设 CPU/内存上限,--parallelism按并发人数设;日常用docker logs -f tabby看日志,出现模型加载慢、请求排队时先来这里定位。
场景实战
让助手解释一段不熟悉的代码。在 IDE 侧栏打开聊天,用@提及目标文件或符号,再提问"这个函数在做什么"。Tabby 会把被提及的代码连同本地仓库上下文一起送进问答模型,回答里能给出函数位置和逻辑拆解,而不是泛泛而谈。
跨文件的仓库级补全。Tabby 不只是看当前文件,它会把仓库里的相关代码(比如本地 LSP 拿到的声明、最近改动的代码)纳入上下文,所以在 A 文件里引用 B 文件定义的函数时也能给出正确签名。补全默认最大输入 1536 字符、最大解码 64 token,这两个值偏保守,是给本地 GPU 和小模型留余量的,调大前先看模型侧的上下文上限。
排障速查
| 现象 | 最常见原因 | 一条命令修复 |
|---|---|---|
| 8080 打不开 | 端口没映射对 | docker ps看实际端口 |
| 模型一直卡住 | 首次拉取模型未完成 | docker logs -f tabby看下载进度 |
| IDE 连上但不补全 | 没设访问令牌 | 扩展里点 Set Credentials 重填令牌 |
| CUDA 初始化报错 | 没装 NVIDIA Container Toolkit | nvidia-smi验证驱动 |
| 内存吃满 / 变慢 | parallelism 过高 | 调低--parallelism后重启容器 |
收尾
Tabby 的落地路径就是"服务端跑起来 → 编辑器连上 → 按显存选模型 → 上代理和认证",这四步走完就能给团队用。深入配置和更多 IDE 的接入细节,直接查仓库内的 官方文档。
【免费下载链接】tabbySelf-hosted AI coding assistant项目地址: https://gitcode.com/GitHub_Trending/tab/tabby
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考