参考:
https://github.com/TabbyML/tabby
为什么选择Tabby
已经有好几款类似强劲的代码补全工具,如GitHub Copilot,Codeium等,为什么还要选择Tabby?
Tabby除了和其他工具一样支持联网直接使用之外,还支持本地化部署。
即对内部代码安全性要求很高时,可以采取Tabby项目模型的本地化部署,不用担心本地项目代码隐私泄露,同时有很好的享受GitHub代码库的建议。
部署完成后,如简单粗暴断开外部网络,甚至拔掉网线,依然可以使用。
可以单机使用,也可以公司内部网、局域网内共同使用。
安装winget,方便命令行安装git
微软商店,搜索winget,安装App Installer
PS C:\Windows\system32> winget install --id Git.Git -e --source winget
Found Git [Git.Git] Version 2.41.0.2
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.2/Git-2.41.0.2-64-bit.exe
0.00 B / 58.3 MB
或者直接下载git.exe图像化安装
Git - Downloads (git-scm.com)
Git Clone tabby项目代码到本地
git clone https://github.com/TabbyML/tabby.git
Windows 10虚拟化设置
控制面板,程序
打开Windows功能,勾选上Hyper-V和虚拟机平台
wsl(Windows Subsystem for Linux)更新
管理员权限打开Windows Power Shell
执行命令查看相关子系统
PS C:\Windows\system32> wsl --list --online
The following is a list of valid distributions that can be installed.
The default distribution is denoted by '*'.
Install using 'wsl --install -d <Distro>'.
NAME FRIENDLY NAME
* Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
openSUSE-42 openSUSE Leap 42
SLES-12 SUSE Linux Enterprise Server v12
Ubuntu-16.04 Ubuntu 16.04 LTS
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
不指定参数默认安装第一个星号标记的Ubuntu
> wsl --install
输出:
PS C:\Windows\system32> wsl --install
Installing: Windows Subsystem for Linux
Windows Subsystem for Linux has been installed.
Downloading: WSL Kernel
Installing: WSL Kernel
WSL Kernel has been installed.
Downloading: Ubuntu
The requested operation is successful. Changes will not be effective until the system is rebooted.
重启电脑
下载并安装Docker
Docker: Accelerated, Containerized Application Development
Docker Desktop打开运行
Docker Run下载镜像
Docker | Tabby
本文选择了CPU,打开PowerShell,在clone下来的tabby根目录下,执行下面的命令
docker run -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model TabbyML/SantaCoder-1B
输出
如果遇到如下问题
ERROR tabby::serve: crates/tabby/src/serve/mod.rs:116: Failed to fetch model due to 'error sending request for url (https://huggingface.co/TabbyML/SantaCoder-1B/resolve/main/ctranslate2/shared_vocabulary.txt): error trying to connect: Connection reset by peer (os error 104)', is 'TabbyML/SantaCoder-1B' a valid model id?
解决方法
手动下载模型
TabbyML/SantaCoder-1B at main
git lfs install
git clone https://huggingface.co/TabbyML/SantaCoder-1B
大文件也可以直接网页手动下载
最后将上述SantaCoder完整目录文件移动到
$HOME/.tabby/models/TabbyML/目录下
然后再重新执行
docker run -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model TabbyML/SantaCoder-1B
模型部署过程中
部署过程中需要等待,没有log可以显示进度,可以通过查看容器Container的stats的网络流量蓝色的数据接收一直在增长,表示部署中
部署成功
(时间取决设备性能)
2023-07-19 08:36:57 2023-07-19T08:36:56.481802Z INFO tabby::serve: crates/tabby/src/serve/mod.rs:131: Listening at 0.0.0.0:8080
检查是否部署成功
浏览器本地访问 http://localhost:8080/
或者在网络中使用 http://PC_IP:8080/
下载并安装VS Code(Visual Studio Code)
direct download link.Download Visual Studio Code - Mac, Linux, Windowsdirect download link.
打开VS Code,扩展种搜索Tabby并安装
Tabby的管理里面设置上面本地部署的Tabby服务
VS Code右下角显示Tabby已经可以提供服务
开始高效编码吧
输入注释或者编码时,会自动补全,即灰色斜体部分,如果接收就直接按Tab键,采纳建议,否则正常进行编码
运行过程中可以查看下电脑的CPU内存使用情况,调用时资源消耗很大,所以体验效果还取决于设备性能,最好使用GPU设备。