🎯 教你用最少的代码,快速打造一个能在命令行对话的"ChatGPT 助手",支持多轮问答、聊天记录、持久化保存,既是工具也是项目展示。
✅ 本文目标
- 通过 
openaiAPI 与 GPT 模型对话 - 支持命令行输入 & 结构化输出
 - 加入历史上下文(记忆)
 - 可扩展成 CLI 工具或本地知识助手
 
🧰 环境准备
1. 安装依赖
pip install openai rich
        2. 获取 OpenAI API Key
- 注册:platform.openai.com/
 - 进入 API Keys 创建密钥
 
🧠 基本结构(chat.py)
            
            
              python
              
              
            
          
          import openai
from rich import print
from rich.console import Console
# ✅ 替换成你的 OpenAI API 密钥
openai.api_key = "sk-xxxxx"
console = Console()
messages = [{"role": "system", "content": "你是一个有趣又专业的编程助手"}]
def chat():
    while True:
        try:
            user_input = console.input("[bold green]你:[/] ")
            if user_input.lower() in ["exit", "quit"]:
                break
            messages.append({"role": "user", "content": user_input})
            res = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",  # 或 gpt-4
                messages=messages
            )
            reply = res.choices[0].message["content"]
            messages.append({"role": "assistant", "content": reply})
            console.print(f"[bold blue]助手:[/] {reply}\n")
        except Exception as e:
            print(f"[red]❌ 错误:{e}[/]")
if __name__ == "__main__":
    chat()
        ✨ 效果演示
            
            
              ruby
              
              
            
          
          $ python chat.py
你:帮我写个快速排序
助手:
当然可以!这是 Python 版本的快速排序代码:
...
        🧠 加分功能建议
| 功能 | 说明 | 
|---|---|
| 保存对话记录 | 写入 chat_log.txt | 
| 使用 argparse | 支持 --model gpt-4、--prompt 等参数 | 
| 本地嵌入文档 | 实现 Retrieval-Augmented Generation(进阶) | 
| 响应多行 markdown | 使用 rich.markdown.Markdown 美化输出 | 
📁 示例目录结构
            
            
              bash
              
              
            
          
          chat-assistant/
├── chat.py
├── .env               # 可存放 API_KEY
└── README.md
        ✅ 项目实用价值
- CLI 工具原型,能快速回答技术问题
 - 可扩展成"Chat with PDF"、Chatbot 网站
 - 可部署到终端、桌面、网页任意形态
 
📦 扩展挑战
- ✅ 用 
langchain+Chroma本地知识库 - ✅ 封装为 
todoaiCLI 工具(支持 chat / code / explain) - ✅ 用 
Textual打造 TUI UI(超好看)