# 宠物问诊机器人 (Pet Bot)

一个基于COTA框架的智能宠物问诊助手，主要展示**代理模式（Proxy User Mode）**的强大功能，通过自动化模拟完整对话流程，用于数据生成、系统测试和演示。

## 📁 项目结构

```
pet/
├── agent.yml          # 主要配置文件：代理模式配置、动作定义
├── endpoints.yml       # 端点配置：LLM和存储配置
└── policy/
    ├── data.yml       # 思维链标注数据
    └── rules.yml      # 触发规则配置
```

## ⚙️ 核心配置介绍

### 1. Agent配置 (agent.yml)

展示了COTA框架的代理模式配置：

#### 系统配置
```yaml
system:
  description: 你是一个专业的宠物疾病问诊助手，擅长收集宠物症状信息并提供初步的诊断建议
```

#### 代理模式配置
```yaml
dialogue:
  use_proxy_user: true   # 🔑 核心：启用代理模式
  max_proxy_step: 50     # 最大对话轮次
  max_tokens: 800        # 最大生成token数
```

#### 策略配置
```yaml
policies:
  - type: trigger        # 基于规则的触发策略
  - type: match
```

#### 动作定义
```yaml
actions:
  UserUtter:     # 代理用户模拟器 - 模拟宠物主人咨询
  BotUtter:      # 专业问诊助手回复
  Selector:      # 智能动作选择器
```

### 2. LLM配置 (endpoints.yml)

```yaml
llms:
  deepseek: # 主要推理模型
    type: openai
    model: deepseek-chat
    key: your_api_key
    apibase: https://api.deepseek.com/v1
```

## 🚀 快速开始

### 1. 启动机器人

```bash
cd /path/to/cota/bots/pet
cota shell --debug
```

### 2. 代理模式自动对话示例

启动后系统将自动进行对话，无需人工输入：

```
[代理用户]: 医生您好，我家的狗狗最近不太爱吃东西，这是怎么回事？
[问诊助手]: 您好！狗狗食欲不振确实需要关注。为了更好地帮助您，我需要了解一些详细信息...

[代理用户]: 它是一只2岁的金毛，体重大概30公斤，平时很活泼...
[问诊助手]: 根据您描述的情况，金毛2岁正值壮年期，突然食欲不振可能有几个原因...

[代理用户]: 那我需要带它去医院检查吗？需要注意什么？
[问诊助手]: 建议您先观察24-48小时，如果出现以下症状需要立即就医...

[代理用户]: 好的，我明白了，非常感谢医生的建议！
[问诊助手]: 不客气！如果有其他问题随时咨询。祝您的狗狗早日康复！
```

### 3. Chain of Thought 推理展示

代理模式下的智能决策过程：

**UserUtter代理思维过程**：
```json
{
  "thought": "对话刚开始，我应该作为担心的宠物主人描述宠物的基本情况和主要症状，语气要自然，体现出对宠物的关爱和担忧。",
  "text": "医生您好，我家的狗狗最近不太爱吃东西，精神也不如以前好，请问这可能是什么原因？",
  "state": "continue"
}
```

**BotUtter专业诊断思维过程**：
```json
{
  "thought": "用户描述了狗狗食欲不振和精神状态下降的症状，这可能涉及多种原因。作为专业的问诊助手，我需要进一步收集信息如年龄、品种、体重、症状持续时间等，以便给出更准确的建议。",
  "text": "您好！狗狗出现食欲不振和精神状态差的情况确实需要关注。为了更好地帮助您，我需要了解一些详细信息：您的狗狗多大了？什么品种？这种情况持续多长时间了？"
}
```

## 🎯 应用场景

### 1. 训练数据生成
- **大规模数据**：快速生成大量高质量对话数据
- **多样化场景**：覆盖各种宠物问诊情况
- **标准化格式**：统一的数据结构便于后续处理

### 2. 系统上线前测试
- **功能验证**：确保所有对话分支都能正常工作
- **性能测试**：验证系统在高并发下的稳定性
- **用户体验**：评估对话流程的自然度和专业性

### 3. 演示和教学
- **产品展示**：向客户展示完整的问诊流程
- **培训材料**：为客服或兽医提供标准问诊流程参考
- **技术演示**：展示COTA框架的代理模式能力

## 📊 与Weather机器人的区别

| 特性 | Weather Bot | Pet Diagnosis Bot |
|------|-------------|-------------------|
| **代理模式** | ❌ 关闭 | ✅ 启用 |
| **交互方式** | 用户手动输入 | 系统自动模拟 |
| **对话复杂度** | 简单查询 | 复杂多轮诊断 |
| **主要用途** | 功能演示 | 数据生成/测试 |
| **适用场景** | 基础配置学习 | 生产前验证 |

## 📝 总结

这个宠物问诊机器人示例完整展示了COTA框架的代理模式能力：
- **代理模式配置**：展示了如何启用和配置自动化对话
- **智能对话生成**：自动产生自然、专业的问诊对话
- **数据生成价值**：为模型训练和系统测试提供高质量数据
- **实战应用**：满足机器人上线前的各种测试需求

通过学习这个示例，您可以掌握COTA框架的代理模式功能，并应用于自动化测试、数据生成等实际场景。
