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.archive
llm
:llm模型名称。可能的值包括ChatGPT
llamacpp
ollama
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://127.0.0.1:8080/v1/chat/completions"
如果使用 API 密钥配置了服务器,则需要提供它
设置环境变量
export LLAMACPP_API_KEY="YOUTR KEY HERE"
或者
在配置文件中包含您的 API 密钥
[llamacpp]
url = "https://127.0.0.1:8080/v1/chat/completions"
api_key = "Your API Key here"
有关 llama.cpp API 的更多信息 在此处
Ollama
要使用 ollama
作为后端,您需要提供指向包含模型名称的服务器的 URL
[ollama]
url = "https://127.0.0.1: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