跳转至

对话功能使用指南

概述

本指南介绍如何使用 simple_chat.py 与Crush进行对话。该脚本已优化以提供最佳的用户体验,包括流式输出显示、动态超时计算、错误恢复机制和模型选择功能。

快速开始

1. 启动服务

# 终端1: 启动relay server
cd relay-server
python3 start_server.py

# 终端2: 启动Session Manager
cd phase1/session_manager
python3 start_manager.py

2. 运行对话脚本

# 使用默认模型(zai/glm-4.5)
python3 simple_chat.py

# 使用指定模型
python3 simple_chat.py zai/glm-4.5
python3 simple_chat.py zai/glm-4.5-air
python3 simple_chat.py zai/glm-4.6
python3 simple_chat.py zai/glm-4.7

基本使用

对话命令

命令 功能 示例
quit, exit, 退出, q 退出对话 quit
retry, 重试, r 重试上一条消息 retry
model [模型名] 切换模型 model zai/glm-4.6
model 显示当前模型和可用模型 model

示例对话

======================================================
💎 与Crush进行对话测试
======================================================
🤖 当前模型: zai/glm-4.5
💡 输入你的消息,按Enter发送
⏹️  输入 'quit' 或 'exit' 退出
🔄 输入 'retry' 重试上一条消息
🔧 输入 'model [模型名]' 切换模型
📋 可用模型: zai/glm-4.5, zai/glm-4.5-air, zai/glm-4.6, zai/glm-4.7
======================================================

✅ 已连接到relay server

👤 You: What is 2+2?

📤 发送中...
🤔 Crush思考中...

======================================================================
💬 Crush:
4
======================================================================

👤 You: 用中文解释什么是递归?

📤 发送中...
🤔 Crush思考中...

======================================================================
💬 Crush:
递归(Recursion)是一种编程技术,其中函数直接或间接地调用自身...
======================================================================

👤 You: model
📋 当前模型: zai/glm-4.5
📋 可用模型: zai/glm-4.5, zai/glm-4.5-air, zai/glm-4.6, zai/glm-4.7

👤 You: model zai/glm-4.5-air
✅ 模型已切换到: zai/glm-4.5-air

👤 You: Write a Hello World in Python

📤 发送中...
🤔 Crush思考中...

======================================================================
💬 Crush:
```python
print("Hello, World!")

👤 You: quit

👋 对话结束

## 模型选择

### 推荐模型

#### ⭐ zai/glm-4.5(默认,推荐)

**性能指标**:
- 平均响应时间: 11.18秒
- 成功率: 100%
- 稳定性: ⭐⭐⭐⭐⭐

**适用场景**:
- 对话式交互
- 快速问答
- 代码生成
- 一般编程问题

**使用方法**:
```bash
python3 simple_chat.py zai/glm-4.5
# 或直接使用默认
python3 simple_chat.py

zai/glm-4.5-air

性能指标: - 平均响应时间: 11.02秒(最快) - 成功率: 75% - 稳定性: ⭐⭐⭐⭐

适用场景: - 简单问答 - 不需要代码生成的任务 - 需要更详细输出的场景

注意事项: - 代码生成任务可能超时

使用方法:

python3 simple_chat.py zai/glm-4.5-air

zai/glm-4.6

性能指标: - 平均响应时间: 29.19秒 - 成功率: 100% - 稳定性: ⭐⭐⭐

适用场景: - 复杂问题 - 需要深度推理的任务 - 不在意响应时间的场景

使用方法:

python3 simple_chat.py zai/glm-4.6

zai/glm-4.7

性能指标: - 平均响应时间: 27.38秒 - 成功率: 75% - 稳定性: ⭐⭐⭐

适用场景: - 复杂问题 - 需要深度推理的任务

注意事项: - 代码生成任务可能超时

使用方法:

python3 simple_chat.py zai/glm-4.7

模型切换

在对话过程中,可以随时切换模型:

👤 You: model zai/glm-4.6
✅ 模型已切换到: zai/glm-4.6

👤 You: Explain quantum computing
[使用zai/glm-4.6模型回答...]

👤 You: model zai/glm-4.5-air
✅ 模型已切换到: zai/glm-4.5-air

功能特性

1. 流式输出显示

Crush的输出会实时显示,无需等待完整回复:

📤 发送中...
🤔 Crush思考中...

======================================================================
💬 Crush:
逐字显示内容...
继续显示...
完成
======================================================================

2. 动态超时计算

根据提示词复杂度自动调整超时时间:

提示词长度 超时时间 示例
< 50字符 2分钟 "What is 2+2?"
50-200字符 3分钟 "Explain the difference between list and tuple"
200-500字符 4分钟 长篇技术问题
> 500字符 5分钟 非常复杂的多部分问题

3. 重试机制

如果请求超时,可以重试上一条消息:

👤 You: What is quantum computing?
[超时]

⏱️  超时:Crush思考时间太长了,可能问题太复杂
💡 提示: 输入 'retry' 重试,或简化问题

👤 You: retry
🔄 重试第 1 次...
[成功获得回复]

最多可以重试3次。

4. 错误处理

友好的错误消息和恢复建议:

❌ 超时:Crush思考时间太长了,可能问题太复杂
💡 提示: 输入 'retry' 重试,或简化问题

❌ 连接错误:无法连接到服务器
💡 启动命令: cd relay-server && python3 start_server.py

❌ Session错误:无法创建会话
💡 提示: 输入 'retry' 重试此消息

最佳实践

1. 选择合适的模型

场景 推荐模型 原因
日常对话 zai/glm-4.5 快速且稳定
代码生成 zai/glm-4.5 100%成功率
复杂问题 zai/glm-4.6 深度推理
简单问答 zai/glm-4.5-air 最快响应

2. 编写有效的提示词

好的提示词: - 具体明确 - 包含必要的上下文 - 使用简洁的语言

示例:

✅ 好的: "用Python写一个函数来反转字符串"
✅ 好的: "Explain the difference between list and tuple in Python"
❌ 不好的: "写个代码"
❌ 不好的: "What's the difference?"(缺少上下文)

3. 处理超时

如果遇到超时:

  1. 重试: 输入 retry 重试同一消息
  2. 简化: 将复杂问题分解为多个简单问题
  3. 切换模型: 使用zai/glm-4.5模型(最稳定)

4. 利用重试机制

  • 对于重要问题,可以重试多次
  • 重试不会消耗新的token
  • 最多可以重试3次

性能指标

响应时间

模型 简单问题 中等复杂 复杂问题 平均
zai/glm-4.5 11.12秒 11.02秒 11.35秒 11.18秒
zai/glm-4.5-air 11.08秒 11.94秒 11.05秒 11.02秒
zai/glm-4.6 34.48秒 25.05秒 25.36秒 29.19秒
zai/glm-4.7 23.06秒 28.56秒 30.51秒 27.38秒

输出性能

  • 输出块大小: 1-60字符/块
  • 输出频率: 约100ms/块
  • 总输出时间: 15-40秒(取决于输出长度)

故障排除

连接失败

问题: ❌ 连接失败:无法连接到relay server

解决方案:

# 检查服务器是否运行
pgrep -f "python3.*server.py"

# 启动服务器
cd relay-server
python3 start_server.py

# 检查Session Manager是否运行
pgrep -f "python3.*start_manager.py"

# 启动Session Manager
cd phase1/session_manager
python3 start_manager.py

超时频繁

问题: 经常遇到超时

解决方案: 1. 切换到zai/glm-4.5模型 2. 简化问题,分解为多个小问题 3. 使用 retry 命令重试

模型不可用

问题: ⚠️ 未知模型: xxx

解决方案: - 检查模型名称是否正确 - 查看可用模型列表: model - 使用推荐模型: zai/glm-4.5

高级用法

自定义超时

虽然脚本会自动计算超时,但你可以在代码中修改:

# 在simple_chat.py中修改calculate_timeout函数
def calculate_timeout(prompt: str) -> tuple:
    base_timeout = 30  # 基础超时(周期数)
    # ... 修改你的逻辑

添加新模型

要添加新模型,修改 simple_chat.py:

# 在文件开头添加新模型
AVAILABLE_MODELS = [
    "zai/glm-4.5",
    "your-new-model",  # 添加新模型
]

批量测试

使用 test_edge_cases.py 进行批量测试:

# 运行边缘情况测试
python3 test_edge_cases.py

# 运行模型性能测试
python3 test_crush_models.py

相关文档

  • 对话优化报告: docs/CONVERSATION_OPTIMIZATION_REPORT.md
  • 模型性能基准测试: docs/CRUSH_MODEL_BENCHMARK.md
  • Agent指南: AGENTS.md
  • API文档: docs/API.md

常见问题 (FAQ)

Q: 为什么输出有时很慢?

A: Crush的首次输出延迟通常在11-34秒之间,这是Crush的固有特性。使用流式输出显示可以改善用户体验。

Q: 如何提高响应速度?

A: 1. 使用zai/glm-4.5模型(最快且稳定) 2. 简化问题 3. 使用简洁的提示词

Q: 超时设置是多少?

A: 根据提示词复杂度自动调整: - 简单问题(<50字符): 2分钟 - 中等复杂度(50-200字符): 3分钟 - 复杂问题(200-500字符): 4分钟 - 超长问题(>500字符): 5分钟

Q: 可以在对话中切换模型吗?

A: 可以!使用 model [模型名] 命令即可实时切换。

Q: 哪个模型最适合代码生成?

A: zai/glm-4.5(默认模型),100%成功率且稳定。

Q: 重试会增加成本吗?

A: 重试使用的是同一个session,不会额外消耗token。

总结

推荐配置: - 默认模型: zai/glm-4.5 - 适用场景: 对话式交互、代码生成、快速问答

快速开始:

python3 simple_chat.py

获取帮助:

# 显示可用模型
python3 simple_chat.py
[输入: model]


最后更新: 2026-03-28 版本: v1.0.0