7个版本 (重大更改)
| 0.11.1 | 2024年3月19日 |
|---|---|
| 0.11.0 | 2024年2月2日 |
| 0.10.0 | 2024年1月27日 |
| 0.9.0 | 2023年10月31日 |
| 0.6.0 | 2023年5月3日 |
#6 in #键绑定
每月301次下载
485KB
2K SLoC
Tenere
用Rust编写的LLM TUI界面
📸 演示
🪄 特点
- 语法高亮
- 聊天历史
- 将聊天保存到文件
- Vim 键绑定(常见操作)
- 从/到剪贴板复制文本(仅在提示中有效)
- 多个后端
💎 支持的LLM
- ChatGPT
- llama.cpp
- ollama
🚀 安装
📥 二进制发布
您可以从发布页面下载预构建的二进制文件
📦 crates.io
tenere可以从crates.io安装
cargo install tenere
⚒️ 从源码构建
要从源码构建,您需要Rust 编译器和 Cargo 包管理器。
一旦安装了Rust和Cargo,运行以下命令以构建
cargo build --release
这将生成一个可执行文件,位于target/release/tenere,您可以将它复制到您的$PATH中的某个目录。
🍺Brew
在macOS上,您可以使用brew
brew tap pythops/tenere
brew install tenere
⚙️ 配置
Tenere可以使用TOML配置文件进行配置。文件应位于
- Linux:
$HOME/.config/tenere/config.toml或$XDG_CONFIG_HOME/tenere/config.toml - Mac:
$HOME/Library/Application Support/tenere/config.toml
常规设置
以下是可用的常规设置
archive_file_name:保存聊天的文件名。默认设置为tenere.archivellm:llm模型名称。可能的值包括ChatGPTllamacppollama
archive_file_name = "tenere.archive"
llm = "chatgpt"
键绑定
Tenere支持可定制的键绑定。您可以通过更新配置文件中的[key_bindings]部分来修改一些默认键绑定。以下是一个带有默认键绑定的示例
[key_bindings]
show_help = '?'
show_history = 'h'
new_chat = 'n'
save_chat = 's'
ℹ️ 注意
为了避免与 vim 键绑定冲突,您需要使用
ctrl+key,除了帮助?键。
ChatGPT
要使用 ChatGPT 作为后端,您需要提供 OpenAI 的 API 密钥。有两种方法可以实现:
使用 API 密钥设置环境变量
export OPENAI_API_KEY="YOUTR KEY HERE"
或者
在配置文件中包含您的 API 密钥
[chatgpt]
openai_api_key = "Your API key here"
model = "gpt-3.5-turbo"
url = "https://api.openai.com/v1/chat/completions"
默认模型设置为 gpt-3.5-turbo。有关更多信息,请查看 OpenAI 文档。
llama.cpp
要使用 llama.cpp 作为后端,您需要提供指向服务器的 URL
[llamacpp]
url = "https://:8080/v1/chat/completions"
如果使用 API 密钥配置了服务器,则需要提供它
设置环境变量
export LLAMACPP_API_KEY="YOUTR KEY HERE"
或者
在配置文件中包含您的 API 密钥
[llamacpp]
url = "https://:8080/v1/chat/completions"
api_key = "Your API Key here"
有关 llama.cpp API 的更多信息 在此处
Ollama
要使用 ollama 作为后端,您需要提供指向包含模型名称的服务器的 URL
[ollama]
url = "https://:11434/api/chat"
model = "Your model name here"
有关 ollama API 的更多信息 在此处
⌨️ 键绑定
全局
这些是无论焦点块如何都适用的默认键绑定。
ctrl + n:开始新的聊天并将上一个聊天保存到历史记录中。
ctrl + s:将当前聊天或聊天历史(应首先显示历史记录弹出窗口)保存到当前目录中的 tenere.archive 文件。
Tab:切换焦点。
j 或 下箭头键:向下滚动
k 或 上箭头键:向上滚动
ctrl + h:显示聊天历史。按 Esc 关闭它。
ctrl + t:停止流响应
q 或 ctrl + c:退出应用
?:显示帮助弹出窗口。按 Esc 关闭它
提示
有三种模式类似于 vim:Normal、Visual 和 Insert。
插入模式
Esc:切换回 Normal 模式。
Enter:创建新行。
Backspace:删除前一个字符。
正常模式
Enter:提交提示。
h 或 左箭头:将光标向后移动一个字符。
j 或 向下箭头:将光标向下移动。
k 或 向上箭头:将光标向上移动。
l 或 右箭头:将光标向前移动一个字符。
w:将光标向右移动一个单词。
b:将光标向后移动一个单词。
0:将光标移动到行首。
$:将光标移动到行尾。
G:转到末尾。
gg:转到顶部。
a:在光标后插入。
A:在行尾插入。
i:在光标前插入。
I:在行首插入。
o:在当前行下方添加新行。
O:在当前行上方添加新行。
x:删除光标下方的字符。
dd:剪切当前行。
D:删除当前行并
dw:删除光标旁边的单词。
db:删除光标左边的单词。
d0:从光标位置删除到行首。
d$:从光标位置删除到行尾。
C:切换到行尾。
cc:更改当前行。
c0:从光标位置更改到行首。
c$:从光标位置更改到行尾。
cw:更改下一个单词。
cb:更改光标左边的单词。
u:撤销。
p:粘贴。
可视模式
v:切换到可视模式。
y:复制选中的文本。
⚖️ 许可证
GPLv3
依赖
~25–46MB
~732K SLoC