跳转到主要内容

Ollama的基于文本的终端客户端。

项目描述

oterm

Ollama的基于文本的终端客户端。

功能

  • 直观简单的终端UI,无需运行服务器、前端,只需在您的终端中键入oterm
  • 多个持久聊天会话,与系统提示和参数定制一起存储在sqlite中。
  • 可以使用Ollama中拉取的任何模型,或您自己的定制模型。
  • 允许轻松自定义模型的系统提示和参数。
  • 支持工具集成,为模型提供外部信息。

安装

使用MacOS的brew

brew tap ggozad/formulas
brew install ggozad/formulas/oterm

使用Arch Linux的yay(或任何AUR助手)

yay -S oterm

使用pip

pip install oterm

使用

为了使用oterm,您需要运行Ollama服务器。默认情况下,它期望在http://127.0.0.1:11434上找到Ollama API。如果您在Docker中运行Ollama或在不同主机/端口上运行,请使用环境变量OLLAMA_HOST来自定义主机/端口。或者,您可以使用OLLAMA_URL来指定完整的http(s) URL。将OTERM_VERIFY_SSL设置为False将禁用SSL验证。

OLLAMA_URL=http://host:port/api

要启动oterm,请执行以下操作

oterm

命令

通过按^ Ctrl+p,您可以访问命令面板,在那里您可以执行大多数聊天操作。以下命令可用

  • 新建聊天 - 创建新的聊天会话
  • 编辑聊天参数 - 编辑当前聊天会话(更改系统提示、参数或格式)
  • 重命名聊天 - 重命名当前聊天会话
  • 导出聊天 - 将当前聊天会话导出为Markdown格式
  • 删除聊天 - 删除当前聊天会话
  • 重新生成最后一个Ollama消息 - 重新生成Ollama的最后一个消息(将覆盖特定消息的seed为随机值)。如果您想更改系统提示或参数,或者只是想再次尝试,这很有用。
  • 拉取模型 - 拉取一个模型或更新现有模型。

键盘快捷键

以下键盘快捷键受支持

  • ^ Ctrl+t - 在暗色/亮色主题之间切换

  • ^ Ctrl+q - 退出

  • ^ Ctrl+l - 切换到多行输入模式

  • ^ Ctrl+i - 选择一张图片与下一条消息一起发送

  • - 在之前的提示历史中导航

  • ^ Ctrl+Tab - 打开下一个聊天

  • ^ Ctrl+Shift+Tab - 打开上一个聊天

在多行模式下,您可以按Enter发送消息,或按Shift+Enter在光标处添加新行。

当Ollama正在推断下一条消息时,您可以按Esc取消推断。

请注意,某些快捷键可能在特定上下文中无法正常工作,例如在多行模式下按

工具

从版本0.6.0开始,oterm支持与工具集成。工具是特殊的“函数”,可以向LLM模型提供它原本无法访问的外部信息。

以下工具目前受支持

  • date_time - 以ISO格式提供当前日期和时间。
  • current_location - 提供用户当前的位置(经度、纬度、城市、地区、国家)。使用ipinfo.io确定位置。
  • current_weather - 提供用户当前位置的当前天气。使用OpenWeatherMap确定天气。您需要在OPEN_WEATHER_MAP_API_KEY环境变量中提供您的(免费)API密钥。
  • shell - 允许您运行shell命令,并将输出用作模型的输入。显然这很危险,所以请谨慎使用。

Ollama中的工具API目前不支持流式传输。当使用工具时,您将不得不等待工具和模型完成,才能看到响应。

请注意,工具集成是实验性的,未来可能会发生变化。我特别欢迎对新工具的贡献,但请记住,任何关于依赖项或付费API使用的额外要求应尽量保持最小。

复制/粘贴

在终端应用程序中正确支持复制/粘贴很困难。您可以将块复制到剪贴板,如下所示

  • 点击一条消息会将其复制到剪贴板。
  • 点击代码块只会将代码块复制到剪贴板。

对于大多数终端,存在一个您可以使用的键修饰符,用于单击和拖动以手动选择文本。例如

  • iTerm Option 键。
  • Gnome Terminal Shift 键。
  • Windows Terminal Shift 键。

自定义模型

在创建新的聊天时,您不仅可以选择模型,还可以自定义system指令、使用的工具以及传递给模型的参数(例如上下文长度、seed、温度等)。有关所有受支持参数的列表,请参阅Ollama文档。勾选JSON输出复选框将强制模型以JSON格式回复。您已拉取或创建的所有模型都将对oterm可用。

您还可以“编辑”聊天以更改系统提示、参数或格式。注意,一旦聊天开始,就无法更改模型。

聊天会话存储

您所有的聊天会话都存储在本地sqlite数据库中。您可以通过设置环境变量OTERM_DATA_DIR来自定义数据库存储的目录。

您可以通过运行oterm --db来找到数据库的位置。

应用程序配置

应用程序配置存储在针对您操作系统的特定目录中,默认情况下

  • Linux: ~/.local/share/oterm/config.json
  • macOS: ~/Library/Application Support/oterm/config.json
  • Windows: C:/Users/<USER>/AppData/Roaming/oterm/config.json

如果您不确定,可以通过运行oterm --data-dir来获取config.json所在的目录。

您可以在配置文件中设置以下选项

{ "theme": "dark", "splash-screen": true }

theme可以是darklightsplash-screen控制启动时是否显示启动画面。

屏幕截图

Splash Chat Model selection Image selection

许可证

本项目采用MIT许可证授权。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

oterm-0.6.4.tar.gz (531.3 kB 查看哈希值)

上传时间

构建分布

oterm-0.6.4-py3-none-any.whl (37.3 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面