操作模式类似于 Vim,灵感借鉴于 tenere 。
- MacOS
- Linux
- [] Windows
- 与大模型对话
- 对话历史
- 保存对话记录到指定目录文件
- 打开指定目录并展示 markdown 文件
- 复制指定文件内容和目录结构作为 prompt 到剪切板
- InfiniLM
- Ollama
- OpenAI GPT
- ChatGLM(智谱清言)
> cd /path/to/InfiniLM
> cargo service --model model/your_cast_model_path/ --port 3000 --top-k 100 --top-p 0.9 --temperature 0.9 --log info
- 配置文件
配置文件使用 TOML 配置文件进行配置。文件默认位置为:
- Linux:
$HOME/.config/infini/
或$XDG_CONFIG_HOME/infini/
- Mac:
$HOME/Library/Application Support/infini/
你也可以自定义配置文件目录:
export CONFIG_DIR=/path/to/infiniinfini_config_dir/
需要配置的文件如下:
config.toml
,指定使用的模型等信息prompts.toml
,设置默认的 prompts 信息
archive_file_name = "/Users/username/infini.archive.md"
file_explorer_path = "/Users/username/Work/Projects/infini/files/"
llm = "infinilm"
language = "zh-CN" # 或 "en"
[infinilm]
url = "http://localhost:3000/infer"
[[messages]]
role = "system"
content = """
你现在是一个 Rust 语言专家,为用户解答任何 Rust 相关问题,并输出安全和健壮的 Rust 代码:
确保你输出的 Rust 代码中不要加任何转义符号!
转换完成之后请按指定 json 格式输出。
"""
- 编译运行
在项目根目录:
> cargo run
或用 Just 部署(或参考 : Justfile 文件,使用对应 cargo 命令)
> just deploy
> infini
- 界面多语言支持
目前支持 中文 和 英文 两种语言:
可以在编译运行时指定 --lang
参数指定语言
> cargo run -- --lang en
也可以在 config.toml
中配置 language
语言,默认为 中文(zh-CN
)
tab
键可以切换焦点- 焦点在 prompt 区域,按
i
键可以输入,按esc
+enter
发送消息 - 焦点在 chat 区域,按
j
或k
可以上下滚动 ?
弹出帮助界面ctrl + f
弹出指定的文件目录,->
可进入目录,tab
可切换页面,j
或k
上下滚动内容ctrl + p
可以复制选定文件内容及其目录结构作为 Prompt 到剪切板,随后可粘贴到 prompt 输入框
特定用法
可以用于 infiniLM 代码阅读和开发调试 :
- 可以把 infinilm 的源码放到指定目录,设置 file_explorer_path
- 通过 ctrl+f 和 ctrl + p ,直接把代码文件和指定目录结构生成为一个 prompt,自动复制到剪切板,然后可以粘贴进 prompt 输入框让大模型解读相关代码
InfiniTUI 支持自定义键绑定。
您可以通过更新 config 配置文件中的[key_bindings]
部分来修改一些默认键绑定。
这是一个包含默认键绑定的示例
[key_bindings]
show_help = '?'
show_history = 'h'
new_chat = 'n'
save_chat = 's'
ℹ️ 注意
为避免与vim键绑定重叠,您需要使用
ctrl
+键
,除了帮助?
外。
这些是无论焦点在哪个块上都适用的默认键绑定。
ctrl + n
:开始新聊天并将上一个保存在历史中。
ctrl + s
:保存当前聊天或聊天历史(首先应该可见历史弹出窗口)到指定目录下的 infini.archive.md
文件。
Tab
:切换焦点。
j
或向下箭头键
:向下滚动
k
或向上箭头键
:向上滚动
ctrl + h
:显示聊天历史。按Esc
关闭它。
ctrl + t
:停止流响应
q
或ctrl + c
:退出应用
?
:显示帮助弹出窗口。按Esc
关闭它
有像vim一样的3种模式:Normal
、Visual
和Insert
。
Esc
:切换回正常模式。
Enter
:创建新行。
Backspace
:删除前一个字符。
Enter
:提交提示
h或Left
:向后移动光标一字符。
j或Down
:向下移动光标。
k或Up
:向上移动光标。
l或Right
:向前移动光标一字符。
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
- MIT