feat: 新增 teams 目录
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
137
teams/ai/ai-core-api.md
Normal file
137
teams/ai/ai-core-api.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# AI-Core 文档解析服务 API 对接文档
|
||||
|
||||
## 服务地址
|
||||
|
||||
```
|
||||
localhost:50051
|
||||
```
|
||||
|
||||
## VLM 配置(可选)
|
||||
|
||||
VLM 用于提升图片文件的解析效果。如果不配置 VLM,则使用默认的 MarkItDown 解析。
|
||||
|
||||
### 方式一:环境变量
|
||||
|
||||
```bash
|
||||
# 设置环境变量
|
||||
export VLM_API_KEY="your-api-key"
|
||||
export VLM_PROVIDER="openai" # openai / anthropic / qwen
|
||||
export VLM_MODEL="gpt-4o"
|
||||
```
|
||||
|
||||
### 方式二:配置文件
|
||||
|
||||
在 `ai-core/config.yaml` 中配置:
|
||||
|
||||
```yaml
|
||||
vlm:
|
||||
enabled: true
|
||||
provider: "openai" # openai / anthropic / qwen
|
||||
model: "gpt-4o" # 模型名称
|
||||
api_key: "sk-xxx" # API Key
|
||||
base_url: "" # 自定义 API 地址(可选)
|
||||
prompt: "" # 自定义提示词(可选)
|
||||
```
|
||||
|
||||
### 支持的 VLM 提供商
|
||||
|
||||
| 提供商 | 示例模型 |
|
||||
|--------|----------|
|
||||
| openai | gpt-4o, gpt-4o-mini |
|
||||
| anthropic | claude-3-opus, claude-3-sonnet |
|
||||
| qwen | qwen-vl-max, qwen2-vl-72b |
|
||||
|
||||
---
|
||||
|
||||
## gRPC API 定义
|
||||
|
||||
### 1. ParseDocument - 解析文档
|
||||
|
||||
**请求 (ParseRequest)**
|
||||
```protobuf
|
||||
message ParseRequest {
|
||||
string file_url = 1; // 文件 URL(必填)
|
||||
string file_name = 2; // 文件名,带扩展名(必填)
|
||||
string file_type = 3; // 文件类型(可选,自动检测)
|
||||
string parser_engine = 4; // 解析引擎(可选)
|
||||
map<string, string> engine_overrides = 5; // 引擎配置
|
||||
|
||||
// VLM 配置(可选,优先级高于全局配置)
|
||||
VLMConfig vlm_config = 6;
|
||||
}
|
||||
|
||||
message VLMConfig {
|
||||
bool enabled = 1;
|
||||
string provider = 2;
|
||||
string model = 3;
|
||||
string api_key = 4;
|
||||
string base_url = 5;
|
||||
string prompt = 6;
|
||||
}
|
||||
```
|
||||
|
||||
**响应 (ParseResponse)**
|
||||
```protobuf
|
||||
message ParseResponse {
|
||||
bool success = 1;
|
||||
string content = 2; // Markdown 内容
|
||||
string message = 3;
|
||||
int32 content_length = 4;
|
||||
string file_type = 5;
|
||||
string parser_engine = 6;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Golang 对接示例
|
||||
|
||||
### 基础调用(无 VLM 配置时使用 MarkItDown)
|
||||
|
||||
```go
|
||||
req := &pb.ParseRequest{
|
||||
FileUrl: "https://example.com/document.pdf",
|
||||
FileName: "document.pdf",
|
||||
}
|
||||
|
||||
resp, client.ParseDocument(ctx, req)
|
||||
```
|
||||
|
||||
### 带 VLM 配置调用
|
||||
|
||||
```go
|
||||
req := &pb.ParseRequest{
|
||||
FileUrl: "https://example.com/image.png",
|
||||
FileName: "image.png",
|
||||
VlmConfig: &pb.VLMConfig{
|
||||
Enabled: Provider: "open true,
|
||||
ai",
|
||||
Model: "gpt-4o",
|
||||
ApiKey: "sk-xxx",
|
||||
},
|
||||
}
|
||||
|
||||
resp, err := client.ParseDocument(ctx, req)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 解析逻辑
|
||||
|
||||
1. **图片文件** (jpg, png, webp 等)
|
||||
- 如果配置了 VLM → 使用 VLM 解析
|
||||
- 如果没有配置 VLM → 使用 MarkItDown 解析
|
||||
|
||||
2. **PDF/DOCX/PPTX 等文档**
|
||||
- 使用 MarkItDown 解析
|
||||
|
||||
3. **VLM 优先级**
|
||||
- gRPC 请求中的 vlm_config > 全局配置(config.yaml/环境变量)
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **文件 URL**: 必须是可直接访问的 URL
|
||||
2. **文件名**: 必须带扩展名(如 `.pdf`, `.png`)
|
||||
3. **返回内容**: Markdown 格式文本
|
||||
20
teams/ai/todo.md
Normal file
20
teams/ai/todo.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# AI 服务需求 TODO
|
||||
|
||||
## 2026年3月
|
||||
|
||||
### 2026-03-09
|
||||
|
||||
- [ ] **AI-Core 文档解析服务对接**
|
||||
- 服务:ai-core (gRPC, 端口 50051)
|
||||
- 功能:将文档(PDF/DOCX/PPTX/图片等)转换为 Markdown
|
||||
- 对接方式:gRPC 调用
|
||||
- 详细需求:[ai-core-api.md](./ai-core-api.md)
|
||||
|
||||
- [ ] **VLM 调用支持**
|
||||
- 支持 OpenAI GPT-4o、Anthropic Claude、阿里 Qwen VL
|
||||
- 通过 vlm_config 配置启用
|
||||
- 适用场景:图片文件(jpg, png 等)自动使用 VLM 解析
|
||||
|
||||
---
|
||||
|
||||
> 需求完成后请完成者打 ✔
|
||||
Reference in New Issue
Block a user