OPEA on TKE¶
📚 概述¶
OPEA (Open Platform for Enterprise AI) 是一个开源的企业级 AI 平台,提供构建生成式 AI 应用所需的组件和微服务。本指南介绍如何在腾讯云 TKE 上部署和运行 OPEA 组件。
🎯 学习目标¶
通过本模块,你将学会:
- 了解 OPEA 架构和核心组件
- 在 TKE 上部署 ChatQnA 应用
- 配置和管理 OPEA 微服务
- 使用自动化脚本快速部署
- 监控和排查 OPEA 应用问题
🏗️ OPEA 架构¶
OPEA 采用微服务架构,主要组件包括:
graph TB
User[用户] --> Gateway[ChatQnA Gateway]
Gateway --> Embedding[Embedding 服务]
Gateway --> Retrieval[Retrieval 服务]
Gateway --> Rerank[Rerank 服务]
Gateway --> LLM[LLM 服务]
Embedding --> TEI1[TEI 引擎]
Rerank --> TEI2[TEI 引擎]
LLM --> vLLM[vLLM 引擎]
Retrieval --> Redis[(Redis 向量数据库)]
DataPrep[DataPrep 服务] --> Redis
DataPrep --> Embedding
style Gateway fill:#4A90E2
style Redis fill:#D84315
style vLLM fill:#7CB342 核心组件说明¶
| 组件 | 用途 | 镜像 |
|---|---|---|
| Gateway | API 网关,协调所有微服务 | opea/chatqna:latest |
| Embedding | 文本向量化 | opea/embedding:latest |
| Retrieval | 向量检索 | opea/retriever:latest |
| Reranking | 结果重排序 | opea/reranking:latest |
| LLM | 大语言模型推理 | opea/vllm:latest |
| DataPrep | 数据预处理和导入 | opea/dataprep:latest |
| Redis Stack | 向量数据库 | redis/redis-stack:7.2.0-v9 |
📖 章节列表¶
| 章节 | 内容 | 难度 | 时间 |
|---|---|---|---|
| 快速开始 | 5 分钟部署 ChatQnA | ⭐ | 10 分钟 |
| ChatQnA 部署 | 完整的 ChatQnA 部署指南 | ⭐⭐ | 30 分钟 |
| 架构详解 | OPEA 架构和组件说明 | ⭐⭐⭐ | 20 分钟 |
| 自动化部署 | 使用 Cookbook 脚本自动化部署 | ⭐⭐ | 20 分钟 |
| 生产实践 | 生产环境部署最佳实践 | ⭐⭐⭐⭐ | 40 分钟 |
| 故障排查 | 常见问题和解决方法 | ⭐⭐⭐ | 15 分钟 |
🚀 快速开始¶
前置条件¶
- TKE 集群(Kubernetes 1.24+)
- 至少 3 个节点,每个节点 4 核 8GB+
- kubectl 已配置并可访问集群
- (可选)GPU 节点用于 LLM 推理
一键部署¶
使用我们提供的自动化脚本快速部署:
# 克隆项目
git clone https://github.com/your-org/ai-on-tke.git
cd ai-on-tke
# 配置腾讯云凭证
cp config/config.example.yaml config/config.yaml
# 编辑 config.yaml 填入 SecretId 和 SecretKey
# 一键部署(包含集群创建)
python cookbook/scenarios/chatqna_e2e.py \
--cluster-name opea-demo \
--region ap-guangzhou \
--node-count 3 \
--wait
手动部署¶
如果已有 TKE 集群:
# 应用 Kubernetes manifests
kubectl apply -f manifests/chatqna/namespace.yaml
kubectl apply -f manifests/chatqna/configmap.yaml
kubectl apply -f manifests/chatqna/
# 等待所有 Pod 就绪
kubectl wait --for=condition=ready pod -l app=chatqna -n opea-system --timeout=600s
# 获取 Gateway 访问地址
kubectl get svc chatqna-gateway -n opea-system
测试部署¶
# 获取 Gateway 外部 IP
GATEWAY_IP=$(kubectl get svc chatqna-gateway -n opea-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
# 测试 ChatQnA API
curl -X POST http://${GATEWAY_IP}:8888/v1/chatqna \
-H "Content-Type: application/json" \
-d '{
"messages": "What is Kubernetes?",
"max_tokens": 100
}'
💡 使用场景¶
1. 企业知识库问答¶
构建基于企业内部文档的智能问答系统:
- 导入公司文档、手册、wiki
- 员工通过自然语言查询信息
- 自动检索相关内容并生成答案
2. 客户支持助手¶
部署智能客服系统:
- 接入客户咨询
- 自动查询产品知识库
- 生成准确的回答和解决方案
3. 开发者文档助手¶
帮助开发者快速查找技术文档:
- 索引 API 文档、教程、最佳实践
- 代码示例检索
- 自动生成使用说明
📊 性能指标¶
基于标准 TKE 集群(3 节点,每节点 8 核 16GB)的性能参考:
| 指标 | 值 | 备注 |
|---|---|---|
| 部署时间 | ~15 分钟 | 包含镜像拉取 |
| 查询延迟 | ~2-5 秒 | CPU 推理,单查询 |
| 并发处理 | ~10 QPS | CPU 推理 |
| 向量检索 | <100ms | Redis Stack |
| 资源占用 | ~20 核 40GB | 全部组件 |
性能优化
使用 GPU 节点可以显著提升 LLM 推理性能(10x+)。详见生产实践章节。
🔗 相关资源¶
官方资源¶
TKE 相关¶
社区¶
🤝 贡献指南¶
我们欢迎社区贡献!如果你想:
- 报告 bug 或问题
- 提出新功能建议
- 贡献文档或代码
- 分享使用经验
请访问:
- Issue: GitHub Issues
- Pull Request: 贡献指南
- 讨论: GitHub Discussions
📝 更新日志¶
- 2024-03-03: 初始版本发布
- ChatQnA 完整部署指南
- 自动化脚本支持
- OPEA v1.5 镜像支持
下一步¶
准备好开始了吗?
或者深入了解架构: