# 腾讯云混元(Tencent Hunyuan)使用指南
## 📋 概述
腾讯云混元是腾讯公司推出的大语言模型服务,提供强大的对话、创作和理解能力。
- **官网**: https://cloud.tencent.com/product/hunyuan
- **控制台**: https://console.cloud.tencent.com/hunyuan
- **API 文档**: https://cloud.tencent.com/document/product/1729
## 🎯 API 特点
### 兼容性
腾讯云混元使用 **OpenAI 兼容的 API 格式**:
- 端点: `https://api.hunyuan.cloud.tencent.com/v1`
- 认证: `Authorization: Bearer YOUR_API_KEY`
- 格式: 与 OpenAI API 完全兼容
### 可用模型
- **hunyuan-lite**: 轻量级模型,速度快,成本低
- **hunyuan-standard**: 标准模型,平衡性能和成本
- **hunyuan-pro**: 专业模型,性能强大
- **hunyuan-turbo**: 高速模型,响应快
## 🔑 获取 API Key
### 1. 注册腾讯云账号
访问: https://cloud.tencent.com
### 2. 开通混元服务
1. 访问混元控制台: https://console.cloud.tencent.com/hunyuan
2. 点击"立即开通"
3. 同意服务协议
### 3. 创建 API Key
1. 在控制台点击"API 密钥"
2. 点击"新建密钥"
3. 复制生成的 API Key
4. 格式: `sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
## 💻 使用 llm-connector
### 基础用法
```rust
use llm_connector::{LlmClient, types::{ChatRequest, Message, Role}};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建客户端(推荐方式)
let client = LlmClient::tencent("sk-YMiR2Q7LNWVKVWKivkfPn49geQXT27OZXumFkSS3Ef6FlQ50")?;
// 或者使用 openai_compatible 方法
// let client = LlmClient::openai_compatible(
// "sk-YMiR2Q7LNWVKVWKivkfPn49geQXT27OZXumFkSS3Ef6FlQ50",
// "https://api.hunyuan.cloud.tencent.com",
// "tencent"
// )?;
// 创建请求
let request = ChatRequest {
model: "hunyuan-lite".to_string(),
messages: vec![Message {
role: Role::User,
content: "你好".to_string(),
..Default::default()
}],
max_tokens: Some(1000),
..Default::default()
};
// 发送请求
let response = client.chat(&request).await?;
println!("Response: {}", response.content);
Ok(())
}
```
### 流式响应
```rust
#[cfg(feature = "streaming")]
{
use futures_util::StreamExt;
let mut streaming_request = request.clone();
streaming_request.stream = Some(true);
let mut stream = client.chat_stream(&streaming_request).await?;
while let Some(chunk) = stream.next().await {
let chunk = chunk?;
if let Some(content) = chunk.get_content() {
print!("{}", content);
}
}
}
```
## 🧪 测试
### 测试非流式响应
```bash
# 设置环境变量
export TENCENT_API_KEY="your-api-key"
# 运行测试
cargo run --example test_tencent
```
### 测试流式响应
```bash
cargo run --example test_tencent --features streaming
```
### 测试原始 API
```bash
./tests/test_tencent_raw.sh
```
## ⚠️ 注意事项
### 1. 推荐使用专用方法
**推荐方式**:
```rust
// ✅ 推荐:使用专用的 tencent() 方法
let client = LlmClient::tencent(api_key)?;
```
**备选方式**:
```rust
// ✅ 也可以:使用 openai_compatible() 方法
let client = LlmClient::openai_compatible(
api_key,
"https://api.hunyuan.cloud.tencent.com", // 不包含 /v1
"tencent"
)?;
```
**错误示例**:
```rust
// ❌ 错误:包含 /v1 会导致 404
let client = LlmClient::openai_compatible(
api_key,
"https://api.hunyuan.cloud.tencent.com/v1", // 错误
"tencent"
)?;
```
### 2. API Key 格式
腾讯云混元的 API Key 格式:
```
sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
与 OpenAI 的格式相同。
### 3. 模型选择
根据需求选择合适的模型:
- **快速响应**: hunyuan-turbo
- **成本优先**: hunyuan-lite
- **性能优先**: hunyuan-pro
- **平衡选择**: hunyuan-standard
### 4. 响应中的 note 字段
腾讯云混元的响应中包含一个 `note` 字段:
```json
{
"note": "以上内容为AI生成,不代表开发者立场,请勿删除或修改本标记"
}
```
这是腾讯云的合规要求,不影响正常使用。
## 🔧 常见错误
### 错误 1: HTTP 404
**错误信息**:
```
API error: OpenAI HTTP 404:
```
**原因**:
- Base URL 设置错误,包含了 `/v1`
**解决**:
```rust
// 使用正确的 base_url(不包含 /v1)
let client = LlmClient::openai_compatible(
api_key,
"https://api.hunyuan.cloud.tencent.com", // 正确
"tencent"
)?;
```
### 错误 2: Unauthorized
**错误信息**:
```json
{
"error": {
"code": "Unauthorized",
"message": "Invalid API key"
}
}
```
**原因**:
- API Key 无效或过期
**解决**:
1. 检查 API Key 是否正确
2. 在控制台重新生成 API Key
### 错误 3: Model Not Found
**错误信息**:
```json
{
"error": {
"code": "model_not_found",
"message": "The model does not exist"
}
}
```
**原因**:
- 模型名称错误
**解决**:
使用正确的模型名称:
- `hunyuan-lite`
- `hunyuan-standard`
- `hunyuan-pro`
- `hunyuan-turbo`
## 📊 支持的功能
| 非流式响应 | ✅ | 完全支持 |
| 流式响应 | ✅ | 完全支持 |
| 函数调用 | ✅ | 支持(部分模型) |
| 视觉理解 | ✅ | 支持(部分模型) |
| 嵌入 | ✅ | 支持 |
## 🎯 最佳实践
### 1. 环境变量管理
```bash
# .env 文件
TENCENT_API_KEY=sk-xxxxxx
TENCENT_MODEL=hunyuan-lite
```
```rust
use std::env;
let api_key = env::var("TENCENT_API_KEY")?;
&api_key,
"https://api.hunyuan.cloud.tencent.com",
"tencent"
)?;
let request = ChatRequest {
model,
// ...
};
```
### 2. 错误处理
```rust
match client.chat(&request).await {
Ok(response) => {
println!("Success: {}", response.content);
}
Err(e) => {
eprintln!("Error: {}", e);
// 检查是否是模型错误
if e.to_string().contains("model_not_found") {
eprintln!("提示: 请检查模型名称是否正确");
}
}
}
```
### 3. 超时设置
```rust
// 使用专用方法设置超时
let client = LlmClient::tencent_with_config(
&api_key,
None, // 使用默认 URL
Some(60), // 60秒超时
None // 无代理
)?;
```
## 📚 参考资源
- **官方文档**: https://cloud.tencent.com/document/product/1729
- **控制台**: https://console.cloud.tencent.com/hunyuan
- **API 参考**: https://cloud.tencent.com/document/product/1729/111007
- **定价**: https://cloud.tencent.com/document/product/1729/97731
## 🎉 总结
腾讯云混元使用 OpenAI 兼容的 API 格式,可以通过专用的 `LlmClient::tencent()` 方法轻松接入。
**关键点**:
1. ✅ 使用 OpenAI 兼容格式
2. ✅ 专用方法: `LlmClient::tencent(api_key)`
3. ✅ 支持流式和非流式响应
4. ✅ 多种模型可选(lite, standard, pro, turbo)
5. ✅ 完全兼容 llm-connector
**推荐使用方式**:
```rust
let client = LlmClient::tencent("sk-...")?;
```
---
**文档版本**: v1.0
**更新日期**: 2025-10-18
**llm-connector 版本**: v0.4.19+