如何实现一个基于CLI终端的AI 聊天机器人?

我开源了一个简单的示例教程程序,按照教程,你可以手把手实现一个在命令行可以运行的AI聊天机器人。

开源地址:github.com/XiaomingX/u...

本教程将指导你如何在终端中运行一个基于 OpenAI API 的 AI 聊天机器人。通过简单的安装和设置,你可以随时在终端中与 AI 聊天。


系统要求

在开始之前,请确保满足以下系统要求:


安装步骤

1. 克隆代码库

首先,克隆项目代码库并进入项目目录:

bash 复制代码
git clone <repository_url>
cd command-ai

2. 安装项目

使用 pip 命令安装 ai 命令行工具:

erlang 复制代码
pip install .

3. 设置 OpenAI API 密钥

将你的 OpenAI API 密钥添加到环境变量中:

ini 复制代码
export OPENAI_API_KEY="sk-..."  # 将 "sk-..." 替换为你的实际密钥

提示 :你可以将此命令添加到 ~/.bashrc 或 ~/.zshrc 文件中,以便在每次启动终端时自动加载。


使用方法

启动聊天机器人

在终端中运行以下命令启动聊天机器人:

复制代码
ai

随后,你可以输入问题或指令,AI 将根据输入内容生成响应。例如:

makefile 复制代码
>>> 你好,你是谁?↩
AI: 我是一个 AI 助手,很高兴为你提供帮助!

可用命令

在聊天过程中,可以使用以下命令来管理对话:

  • /help:查看可用命令列表
  • /exit:退出程序
  • /log:查看当前对话记录
  • /save:将对话记录保存到文件
  • /clear:清空所有对话记录
  • /forget:忘记上一条消息
  • /context:显示当前聊天上下文

自定义上下文

你可以在 ~/.ai/context.txt 文件中添加上下文,作为 AI 响应时的系统提示。

示例文件内容:

复制代码
以下是与 AI 助手的对话。助手乐于助人、富有创意、聪明且非常友好。

命令参数

运行 ai 命令时,可以附加以下参数进行配置:

  • -m, --model :指定要使用的模型 ID(如 gpt-4 或 gpt-3.5-turbo)。查看可用模型:OpenAI 模型列表。
  • -M, --max_tokens:指定生成答案的最大令牌数(默认:4096 减去输入令牌数)。
  • -t, --temperature:调整响应的随机性(范围 0-2,较高的值生成更随机的响应,较低的值生成更确定的响应)。

更多参数信息,请参阅 OpenAI API 文档。


示例

以下是一个完整的聊天示例:

shell 复制代码
% ai
输入 "/help" 查看可用命令。

>>> 奇点什么时候会发生?

AI: 预测奇点确切发生的时间非常困难,因为这取决于多种因素,并且在人工智能领域的专家中仍在进行着持续的辩论和猜测。然而,一些估计表明,随着技术的不断加速,奇点可能会在未来几十年内发生。

>>> 翻译成日语。

AI: シンギュラリティがいつ起こるかを正確に予測することは難しいため、人工知能の専門家たちの間でも議論や予測が続いています。ただし、技術の進歩が前例のない速度で進んでいることを考慮すると、数十年以内に起こる可能性があるとされています。

>>> /exit

AI: 再见!

总结

通过本教程,你可以在终端中快速安装并使用 AI 聊天机器人。如果在使用过程中遇到任何问题,请随时参考 OpenAI 文档或提问。

祝你使用愉快!

相关推荐
凤山老林2 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
朱涛的自习室3 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
woniu_maggie6 小时前
SAP MDG主数据治理实战:从架构原理到项目实施全解析
后端
xiaoqiMikko6 小时前
Redis 实战(一):内存满了 —— 拒写、淘汰、被系统杀掉,以及删了 key 内存为什么不降(6.2.4 实测)
redis·后端
工程师小爱6 小时前
电芯尺寸合格,不等于电池包尺寸合格
后端
geovindu6 小时前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
闲云lazycloud6 小时前
第 1 课:Harness 与 Agent 运行时
人工智能·后端
熊哈哈O_o6 小时前
260+异构同步链路:DDL语法自动翻译在大规模数据同步中的实现原理
后端
用户9888321871747 小时前
别把 IOptionsSnapshot 注入单例:从生命周期看 .NET 配置读取
后端