MiniMax AI 项目结构与原理
## MiniMax AI 项目结构与原理
### 📁 文件结构
```
ForAI/
├── config.py # 配置文件
├── main.py # 命令行入口
├── minimax_client.py # API 客户端封装
├── requirements.txt # 依赖列表
└── .env.example # 环境变量示例(已弃用)
```
### 🔧 各文件详解
**1. config.py - 配置管理**
```python
MINIMAX_API_KEY = "sk-cp-..." # API 密钥(写死)
MINIMAX_BASE_URL = "https://api.minimaxi.com/anthropic" # API 地址
DEFAULT_MODEL = "image-01" # 默认模型
MAX_TOKENS = 4096 # 最大生成 token 数
TEMPERATURE = 1.0 # 随机性参数
```
原理:集中管理所有配置,简化其他文件的引用。
**2. minimax_client.py - 核心客户端**
```python
class MiniMaxClient:
# __init__: 初始化 Anthropic SDK 客户端
# chat(): 支持流式/非流式文字对话
# simple_chat(): 简易单轮对话
# generate_image(): 调用 /v1/image_generation 生成图片
```
原理:
- 使用 `anthropic` 官方 SDK 进行文字对话
- 使用 `requests` 库直接调用图像生成 API(因为 SDK 不支持)
**3. main.py - 命令行入口**
使用 `argparse` 解析命令行参数:
- `-m/--message`: 发送的消息
- `-s/--system`: 系统提示词
- `--stream`: 开启流式输出
- `--image/-i`: 图像生成模式
- `--width/--height`: 像素尺寸
- `--aspect-ratio`: 比例(如 16:9)
- `--n`: 生成数量
### 🔄 工作流程
```
用户输入命令
↓
main.py 解析参数
↓
创建 MiniMaxClient 实例
↓
调用相应方法
├── chat() / simple_chat() → 文字对话
└── generate_image() → 图像生成
↓
API 返回响应
↓
解析并打印结果
```
### 📡 API 调用原理
**文字对话**(使用 Anthropic SDK):
```
client.messages.create(
model="MiniMax-M2.7-highspeed",
messages=[{"role": "user", "content": "..."}],
system="你是一个助手"
)
```
**图像生成**(直接调用 REST API):
```python
requests.post(
"https://api.minimaxi.com/v1/image_generation",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "image-01",
"prompt": "...",
"aspect_ratio": "1:1",
"n": 1
}
)
```
### 🔑 核心概念
| 参数 | 作用 |
|------|------|
| `temperature` | 控制输出随机性,1.0 为标准,较低值更确定 |
| `max_tokens` | 限制最大生成长度 |
| `stream` | 是否逐字输出(打字机效果) |
| `prompt_optimizer` | 是否让 AI 优化提示词 |
| `aspect_ratio` | 图像宽高比 |
### 🚀 运行示例
```bash
# 文字对话
python main.py -m "你好"
# 流式对话
python main.py -m "写一个故事" --stream
# 生成图片
python main.py -m "一只猫" --image --width 512 --height 512
```