# kimi-ai-2api-deno
**Repository Path**: dext7r/kimi-ai-2api-deno
## Basic Information
- **Project Name**: kimi-ai-2api-deno
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: deno
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-01
- **Last Updated**: 2025-11-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 kimi-ai-2api: 你的 Kimi AI "万能转换插头" 🚀
一个将 Kimi.ai 聊天体验无缝转换为兼容 OpenAI API 格式的高性能代理服务
"我们不创造 AI,我们只是 AI 世界的'连接者',让强大的力量以更熟悉、更便捷的方式流淌到你的指尖。"
---
## 📖 目录导航
- [🌟 核心哲学](#-核心哲学)
- [✨ 主要特性](#-主要特性)
- [🏗️ 技术架构](#-技术架构)
- [🚀 快速开始](#-快速开始)
- [🐳 Docker 部署](#-docker-部署)
- [🔧 配置说明](#-配置说明)
- [💡 使用示例](#-使用示例)
- [🛠️ 开发指南](#️-开发指南)
- [📈 项目路线图](#-项目路线图)
- [🤝 参与贡献](#-参与贡献)
- [📜 开源协议](#-开源协议)
---
## 🌟 核心哲学
在这个 AI 技术飞速发展的时代,我们站在技术浪潮的前沿,渴望拥抱每一个强大的 AI 能力。然而,不同的 AI 服务之间往往存在着技术壁垒,让开发者难以充分利用各种 AI 的优势。
`kimi-ai-2api` 的诞生源于一个简单而强大的愿景:**打破技术壁垒,建立无缝连接**。
### 我们的信念:
- **开放共享** - 打破封闭生态,让优秀的技术能够自由流动
- **赋能开发** - 让你喜爱的工具和应用都能轻松集成 Kimi AI 能力
- **激发创造** - 当技术不再成为障碍,创造力将无限释放
> 这个项目是对所有开发者和创造者的致敬。它传递着一个信念:**"只要有想法,技术不应是障碍。你来,你也能行!"**
---
## ✨ 主要特性
| 特性 | 描述 | 状态 |
|------|------|------|
| 🔌 **OpenAI 兼容** | 即插即用,完美兼容 OpenAI API 格式 | ✅ 已实现 |
| 🧠 **智能会话管理** | 支持有状态和无状态两种会话模式 | ✅ 已实现 |
| 💨 **流式响应** | 伪流式响应,提供流畅的交互体验 | ✅ 已实现 |
| 🐳 **容器化部署** | Docker 一键部署,简化运维 | ✅ 已实现 |
| 🔐 **安全认证** | API 密钥认证,保护服务安全 | ✅ 已实现 |
| 🔄 **智能重试** | 自动处理令牌刷新和请求重试 | ✅ 已实现 |
| 📊 **会话持久化** | 可配置的会话缓存和 TTL 管理 | ✅ 已实现 |
### 🎯 核心功能详解
#### 🔌 OpenAI 完全兼容
- 支持标准的 `v1/chat/completions` 和 `v1/models` 端点
- 兼容所有基于 OpenAI SDK 的客户端和库
- 无缝替换现有应用中的 OpenAI 配置
#### 🧠 智能会话管理
```python
# 有状态会话 - 记住对话历史
{
"model": "kimi",
"messages": [...],
"user": "user_123456" # 唯一用户ID,开启会话记忆
}
# 无状态会话 - 单次请求
{
"model": "kimi",
"messages": [...]
# 无 user 字段,每次都是新对话
}
```
#### 💨 流畅的交互体验
- 伪流式响应模拟逐字输出效果
- 支持 Server-Sent Events (SSE) 协议
- 显著提升前端用户体验
---
## 🏗️ 技术架构
### 📐 系统架构图
```mermaid
graph TB
subgraph "客户端应用"
A[Web App] --> B[移动应用]
C[桌面客户端] --> D[浏览器插件]
end
subgraph "kimi-ai-2api 网关"
E[Nginx 负载均衡] --> F[FastAPI 应用 1]
E --> G[FastAPI 应用 2]
E --> H[FastAPI 应用 N]
end
subgraph "核心服务层"
F --> I[认证中间件]
G --> I
H --> I
I --> J[会话管理器]
J --> K[Kimi 提供商]
end
subgraph "数据层"
J --> L[内存缓存
TTLCache]
M[环境配置
.env] --> K
end
subgraph "外部服务"
K --> N[🌐 Kimi.ai 官网]
N --> O[🛡️ Cloudflare 防护]
O --> P[🔑 Nonce 令牌]
end
style E fill:#4ECDC4
style I fill:#45B7D1
style J fill:#96C93D
style K fill:#A166AB
style L fill:#FF6B6B
```
### 📁 项目结构
```
kimi-ai-2api/
├── 🐳 部署配置
│ ├── docker-compose.yml # 🏗️ 容器编排
│ ├── Dockerfile # 📦 容器构建
│ └── nginx.conf # 🚦 反向代理
├── 🔧 应用核心
│ ├── main.py # 🚪 应用入口
│ ├── requirements.txt # 📋 依赖管理
│ └── app/
│ ├── core/
│ │ ├── config.py # ⚙️ 配置管理
│ │ └── __init__.py
│ ├── providers/
│ │ ├── base_provider.py # 🏛️ 提供商基类
│ │ ├── kimi_ai_provider.py # 🧠 Kimi 核心逻辑
│ │ └── __init__.py
│ └── utils/
│ └── sse_utils.py # 📨 SSE 工具类
├── 🔐 环境配置
│ ├── .env.example # 🎨 配置模板
│ └── .env # 🔒 实际配置
└── 📚 文档资源
├── README.md # 📖 项目说明
└── assets/ # 🖼️ 资源文件
```
### 🛠️ 技术栈详情
| 层级 | 技术选型 | 版本 | 选择理由 |
|------|----------|------|----------|
| **容器化** | Docker + Docker Compose | latest | 环境隔离,一键部署 |
| **代理层** | Nginx | 1.18+ | 高性能负载均衡 |
| **应用框架** | FastAPI + Uvicorn | 0.104+ | 异步高性能,自动文档 |
| **HTTP 客户端** | Cloudscraper | 1.2.71+ | 绕过 Cloudflare 防护 |
| **数据验证** | Pydantic | 2.5+ | 类型安全,性能优异 |
| **缓存管理** | TTLCache | 内置 | 轻量级内存缓存 |
---
## 🚀 快速开始
### 环境要求
- 🐳 **Docker** 20.10+
- 🐙 **Docker Compose** 2.0+
- 💻 **操作系统**: Linux, macOS, Windows (WSL2)
### 5分钟快速部署
#### 1. 克隆项目
```bash
git clone https://github.com/lzA6/kimi-ai-2api.git
cd kimi-ai-2api
```
#### 2. 配置环境
```bash
# 复制配置模板
cp .env.example .env
# 编辑配置文件
nano .env # 或使用你喜欢的编辑器
```
#### 3. 启动服务
```bash
# 一键启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看实时日志
docker-compose logs -f
```
#### 4. 验证部署
```bash
# 测试服务健康状态
curl http://localhost:8088/health
# 测试模型列表接口
curl -H "Authorization: Bearer your-api-key" \
http://localhost:8088/v1/models
```
---
## 🐳 Docker 部署
### 单机部署
```yaml
# docker-compose.yml 核心配置
version: '3.8'
services:
kimi-api:
build: .
container_name: kimi-ai-2api
env_file:
- .env
environment:
- API_MASTER_KEY=${API_MASTER_KEY}
- SESSION_CACHE_TTL=${SESSION_CACHE_TTL:-3600}
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
nginx:
image: nginx:alpine
container_name: kimi-nginx
ports:
- "${NGINX_PORT:-8088}:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- kimi-api
restart: unless-stopped
```
### 生产环境部署建议
```bash
# 使用生产配置
docker-compose -f docker-compose.prod.yml up -d
# 设置资源限制
docker-compose --compatibility up -d
# 使用外部网络
docker network create kimi-network
docker-compose up -d
```
---
## 🔧 配置说明
### 环境变量配置
创建 `.env` 文件并配置以下参数:
```env
# ====================
# 🔐 安全配置 (必需)
# ====================
API_MASTER_KEY=sk-your-secret-key-here-2024
# ====================
# 🌐 网络配置 (可选)
# ====================
NGINX_PORT=8088
API_HOST=0.0.0.0
API_PORT=8000
# ====================
# 💾 会话配置 (可选)
# ====================
SESSION_CACHE_TTL=3600
MAX_SESSION_SIZE=1000
# ====================
# 🔧 高级配置 (可选)
# ====================
LOG_LEVEL=INFO
REQUEST_TIMEOUT=60
MAX_RETRIES=3
```
### 配置参数详解
| 参数 | 默认值 | 说明 |
|------|--------|------|
| `API_MASTER_KEY` | 无 | **必须修改**,API 访问密钥 |
| `NGINX_PORT` | 8088 | 服务对外暴露端口 |
| `SESSION_CACHE_TTL` | 3600 | 会话缓存时间(秒) |
| `MAX_SESSION_SIZE` | 1000 | 最大会话缓存数量 |
| `LOG_LEVEL` | INFO | 日志级别 DEBUG/INFO/WARNING/ERROR |
| `REQUEST_TIMEOUT` | 60 | 请求超时时间(秒) |
---
## 💡 使用示例
### 基础聊天示例
```python
import openai
# 配置客户端
client = openai.OpenAI(
base_url="http://localhost:8088/v1",
api_key="sk-your-secret-key-here"
)
# 单次对话
response = client.chat.completions.create(
model="kimi",
messages=[
{"role": "user", "content": "请用 Python 写一个快速排序算法"}
],
stream=False
)
print(response.choices[0].message.content)
```
### 流式对话示例
```python
# 流式响应
stream = client.chat.completions.create(
model="kimi",
messages=[
{"role": "user", "content": "解释一下量子计算的基本概念"}
],
stream=True,
user="user_123456" # 开启会话记忆
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
```
### 会话记忆示例
```python
# 第一次对话 - 建立会话
response1 = client.chat.completions.create(
model="kimi",
messages=[
{"role": "user", "content": "我叫张三,来自北京"}
],
user="zhang_san_001" # 使用用户ID开启会话记忆
)
# 第二次对话 - 记住上下文
response2 = client.chat.completions.create(
model="kimi",
messages=[
{"role": "user", "content": "我刚才说我来自哪里?"}
],
user="zhang_san_001" # 相同的用户ID,Kimi会记住之前的信息
)
```
### cURL 示例
```bash
# 获取模型列表
curl -H "Authorization: Bearer sk-your-key" \
http://localhost:8088/v1/models
# 发送聊天请求
curl -X POST http://localhost:8088/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-key" \
-d '{
"model": "kimi",
"messages": [
{"role": "user", "content": "你好,请介绍一下你自己"}
],
"stream": true
}'
```
---
## 🛠️ 开发指南
### 本地开发环境
```bash
# 1. 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 2. 安装依赖
pip install -r requirements.txt
# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 文件设置你的配置
# 4. 启动开发服务器
uvicorn main:app --reload --host 0.0.0.0 --port 8000
```
### API 接口文档
启动服务后访问:`http://localhost:8088/docs`

### 添加新的 AI 提供商
```python
# 在 app/providers/ 下创建新的提供商
from .base_provider import BaseProvider
class NewAIProvider(BaseProvider):
def __init__(self, config):
self.config = config
async def create_completion(self, request):
# 实现具体的 AI 服务调用逻辑
pass
async def stream_completion(self, request):
# 实现流式响应逻辑
pass
```
---
## 📈 项目路线图
### 🎯 已完成功能
- ✅ OpenAI API 兼容接口
- ✅ 有状态会话管理
- ✅ 伪流式响应支持
- ✅ Docker 容器化部署
- ✅ API 密钥认证
- ✅ 智能重试机制
### 🔄 进行中开发
- 🚧 Redis 会话持久化
- 🚧 性能监控和指标收集
- 🚧 更健壮的错误处理
### 📅 计划功能
- 🔮 多提供商支持 (DeepSeek, 文心一言等)
- 🔮 Web 管理界面
- 🔮 速率限制和配额管理
- 🔮 数据库持久化存储
- 🔮 集群部署支持
---
## 🤝 参与贡献
我们热烈欢迎社区的贡献!无论是代码、文档、创意还是反馈,都是宝贵的。
### 贡献方式
1. **报告问题** - 在 GitHub Issues 中反馈 bug 或建议
2. **提交代码** - Fork 项目并提交 Pull Request
3. **改进文档** - 帮助完善文档和示例
4. **分享用例** - 分享你的使用场景和经验
### 开发流程
```bash
# 1. Fork 项目
# 2. 克隆你的分支
git clone https://github.com/your-username/kimi-ai-2api.git
# 3. 创建功能分支
git checkout -b feature/your-feature-name
# 4. 提交更改
git commit -m "feat: add your feature"
# 5. 推送到分支
git push origin feature/your-feature-name
# 6. 创建 Pull Request
```
### 贡献指南
- 遵循现有的代码风格
- 添加适当的单元测试
- 更新相关文档
- 确保所有测试通过
---
## 📜 开源协议
本项目采用 **Apache License 2.0** 开源协议。
### 主要条款摘要
**你可以:**
- ✅ 自由使用、修改和分发代码
- ✅ 用于商业项目
- ✅ 专利授权
**你需要:**
- 📝 保留原始版权和许可声明
- 📝 声明对源码的修改
**你不能:**
- ❌ 使用项目商标
- ❌ 追究原作者责任
查看完整的 [Apache 2.0 协议原文](https://www.apache.org/licenses/LICENSE-2.0)
---
## 💝 感谢支持
如果这个项目对你有所帮助,请考虑:
⭐ **给个 Star** - 支持我们的工作
🐛 **报告问题** - 帮助改进项目
🔄 **分享项目** - 让更多人受益
**连接世界,创造未来** 🌍
*Made with ❤️ and the spirit of connection.*
---
## 🔗 相关链接
- [📚 详细文档](https://github.com/lzA6/kimi-ai-2api/wiki)
- [🐛 问题反馈](https://github.com/lzA6/kimi-ai-2api/issues)
- [💬 讨论区](https://github.com/lzA6/kimi-ai-2api/discussions)
- [📦 Docker Hub](https://hub.docker.com/r/your-repo/kimi-ai-2api)
---
### 🚀 立即开始你的 Kimi AI 集成之旅!
[快速开始](#-快速开始) | [Docker 部署](#-docker-部署) | [使用示例](#-使用示例)
---