Metadata-Version: 2.4
Name: AItoy
Version: 0.5.0
Summary: 基于Tri-gram模型的简易AI对话玩具库（内置动物常识知识库）
Author: noahwzy
Author-email: 1988464660@163.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: requires-python
Dynamic: summary

# AItoy
一个基于 **Tri-gram（三元语法）模型** 的简易 AI 对话玩具库，内置动物常识知识库，用纯 Python（仅依赖标准库）实现词语级文本生成。

## 功能
- 内置动物常识知识库（20种动物的行为、食物、禁忌动作）
- 基于 Tri-gram 模型的词语级文本预测与生成
- 常识合理性校验（避免生成违反动物天性的句子）
- 交互式对话入口 `AI_toy()`
- 命令行入口 `cli()`

## 安装
```bash
pip install AItoy
```

## 使用示例

### 交互式对话（输入两个词，空格隔开，例如：小马 爱）
```python
import AItoy

AItoy.AI_toy()
```
运行后示例：
```
✅训练句子数量：1000
===【词语级Trigram】输入两个词，quit退出===

你：小马 爱
AI：小马爱奔跑。
你：quit
```

### 命令行方式
```bash
python -m AItoy --temp 1.0 --topk 5
```
（`--temp` 温度参数、`--topk` 采样范围参数）

### 底层 API 直接调用
```python
import AItoy
from AItoy.main import generate_token_sentences, train_token_trigram, token_generate

# 1. 生成训练句子
sents = generate_token_sentences(total=1000)

# 2. 训练 Tri-gram 模型
model = train_token_trigram(sents)

# 3. 用模型生成
result = token_generate(model, "小马", "爱")
print(result)   # 例如：小马爱奔跑。
```

## API 文档

### AI_toy(temperature=1.0, top_k=None) -> None
交互式对话主函数。训练 Tri-gram 模型后循环接收用户输入，输入两个词（空格隔开）触发生成，输入 `quit` 退出。

### cli() -> None
命令行入口，解析 `--temp` 和 `--topk` 参数后调用 `AI_toy()`。

### generate_token_sentences(total=1000) -> list
随机生成 `total` 条训练句子，每条为 token 列表（形如 `["小马", "爱", "奔跑", "。"]`）。

### train_token_trigram(token_sents) -> dict
用句子列表训练 Tri-gram 模型，返回以二元组 `(词A, 词B)` 为键、后续词列表为值的字典。

### token_generate(model, animal, modal) -> str
给定模型、动物名和情态词，生成一句话。若生成结果违反常识（`check_common_sense` 校验不通过），则退回规则生成。

### check_common_sense(token_list, animal) -> bool
常识校验：句子中不得包含该动物的禁忌动作，且必须包含其允许的动作。

## 内置动物常识（节选）
| 动物 | 行为 | 食物 | 禁忌 |
|------|------|------|------|
| 小马 | 散步/奔跑/嘶鸣 | 青草 | 吃鱼 |
| 小猫 | 跳跃/打滚/喵喵叫 | 小鱼 | 啃骨头/飞翔 |
| 小狗 | 奔跑/摇尾巴/汪汪叫 | 肉骨头 | 采蜜 |
| 小鸟 | 飞翔/唱歌 | 虫子 | 钻泥土 |
| 熊猫 | 吃竹子/打滚 | 竹子 | 捕鱼 |

## 说明
- 首次导入会向当前工作目录写入 `knowledge.json` 知识库文件。
- 本库为教学/玩具性质，仅依赖 Python 标准库，无需安装第三方依赖。

## 版本日志
- 0.5.0：Tri-gram 词语生成、常识校验、交互与命令行入口

## 许可证
MIT
