跳转至

文字处理工程流API文档

文字处理工程流(团队A)API完整文档


📋 目录

  1. 概述
  2. 文本处理API
  3. 向量嵌入API
  4. 检索API
  5. RAG问答API
  6. 文本标注API
  7. 错误处理
  8. 使用示例

概述

文字处理工程流提供了一套完整的文本处理、向量检索和问答生成API。

核心功能

  • ✅ 文本解析和分块
  • ✅ 向量嵌入生成
  • ✅ 语义检索
  • ✅ RAG问答
  • ✅ 文本标注

技术栈

  • FastAPI (Web框架)
  • PostgreSQL (数据库)
  • pgvector (向量数据库)
  • sentence-transformers (本地嵌入模型)
  • CLIProxyAI (远程AI服务)

文本处理API

1. 文本分块

端点: POST /api/v1/text/chunk

描述: 将文本智能分块,保持语义完整性

请求体:

{
  "text": "混元灵通是智能气功的核心理论...",
  "max_chunk_size": 300,
  "min_chunk_size": 100,
  "overlap": 50
}

响应:

{
  "chunks": [
    {
      "id": "chunk_000001",
      "content": "混元灵通是智能气功的核心理论",
      "metadata": {
        "title": "智能气功基础",
        "tags": ["气功", "理论"]
      },
      "char_count": 20,
      "word_count": 12
    }
  ],
  "statistics": {
    "total_chunks": 5,
    "total_chars": 1500,
    "avg_chunk_size": 300
  }
}

2. 文件处理

端点: POST /api/v1/text/process-file

描述: 处理上传的文本文件

请求: multipart/form-data - file: 文本文件 - format: 文件格式(txt/md/html)

响应:

{
  "chunks": [...],
  "metadata": {
    "title": "智能气功基础教程",
    "author": "庞明",
    "chapters": ["第一章", "第二章"],
    "encoding": "utf-8"
  }
}


向量嵌入API

1. 生成嵌入

端点: POST /api/v1/embeddings

描述: 生成文本的向量嵌入

请求体:

{
  "text": "混元灵通是智能气功的核心理论",
  "provider": "local"
}

响应:

{
  "vector": [0.1, 0.2, 0.3, ...],
  "dimension": 512,
  "provider": "local",
  "quality_score": 0.95,
  "processing_time": 0.15
}

2. 批量嵌入

端点: POST /api/v1/embeddings/batch

描述: 批量生成向量嵌入

请求体:

{
  "texts": [
    "混元灵通是智能气功的核心理论",
    "组场是智能气功的练习方法"
  ],
  "batch_size": 32,
  "provider": "local"
}

响应:

{
  "embeddings": [[0.1, 0.2, ...], [0.3, 0.4, ...]],
  "count": 2,
  "total_time": 0.25,
  "avg_quality": 0.93
}


检索API

1. 混合检索

端点: POST /api/v1/search

描述: 使用混合检索(向量+全文)搜索文档

请求体:

{
  "query": "什么是混元灵通?",
  "method": "hybrid",
  "top_k": 10,
  "threshold": 0.5,
  "category": "theory"
}

响应:

{
  "results": [
    {
      "id": 1,
      "title": "混元灵通理论",
      "content": "混元灵通是智能气功的核心理论...",
      "score": 0.92,
      "method": "hybrid",
      "rank": 1
    }
  ],
  "total_time": 0.5,
  "vector_count": 5,
  "fulltext_count": 5,
  "fusion_method": "rrf"
}

2. 向量检索

端点: POST /api/v1/search/vector

描述: 纯向量检索

请求体:

{
  "query": "混元灵通",
  "top_k": 10
}

3. 全文检索

端点: POST /api/v1/search/fulltext

描述: 纯全文检索

请求体:

{
  "query": "混元灵通",
  "top_k": 10
}


RAG问答API

1. 单轮问答

端点: POST /api/v1/rag/query

描述: RAG增强的单轮问答

请求体:

{
  "question": "什么是混元灵通?",
  "retrieval_method": "hybrid",
  "top_k": 5,
  "max_context_length": 2000
}

响应:

{
  "answer": "混元灵通是智能气功的核心理论,强调通过意念来统一身心...",
  "quality": "high",
  "confidence": 0.9,
  "citations": [
    {
      "source_id": 1,
      "title": "混元灵通理论",
      "content_snippet": "混元灵通是智能气功的核心理论",
      "relevance_score": 0.92
    }
  ],
  "processing_time": 1.5
}

2. 多轮对话

端点: POST /api/v1/rag/chat

描述: 支持上下文的多轮对话

请求体:

{
  "conversation_id": "conv_123",
  "message": "它有什么特点?"
}

响应:

{
  "answer": "...",
  "conversation_id": "conv_123",
  "turn": 2,
  "context_summary": [...]
}

3. 清空对话历史

端点: DELETE /api/v1/rag/history/{conversation_id}

描述: 清空指定对话的历史记录

响应:

{
  "success": true,
  "message": "对话历史已清空"
}


文本标注API

1. 创建标注

端点: POST /api/v1/annotations

描述: 创建文本标注

请求体:

{
  "text_block_id": 1,
  "annotation_type": "keyword",
  "content": "混元灵通",
  "start_pos": 0,
  "end_pos": 4,
  "importance": "high",
  "confidence": 0.95,
  "metadata": {
    "source": "manual"
  }
}

响应:

{
  "id": 1,
  "text_block_id": 1,
  "annotation_type": "keyword",
  "content": "混元灵通",
  "importance": "high",
  "confidence": 0.95,
  "created_at": "2026-04-01T10:00:00Z",
  "version": 1
}

2. 列出标注

端点: GET /api/v1/annotations

查询参数: - text_block_id: 文本块ID - annotation_type: 标注类型 - importance: 重要性 - limit: 返回数量(默认100) - offset: 偏移量

响应:

{
  "annotations": [...],
  "total": 50,
  "limit": 100,
  "offset": 0
}

3. 更新标注

端点: PUT /api/v1/annotations/{annotation_id}

请求体:

{
  "content": "混元灵通(核心理论)",
  "importance": "critical"
}

响应:

{
  "id": 1,
  "content": "混元灵通(核心理论)",
  "importance": "critical",
  "version": 2,
  "updated_at": "2026-04-01T10:05:00Z"
}

4. 删除标注

端点: DELETE /api/v1/annotations/{annotation_id}

响应:

{
  "success": true,
  "message": "标注已删除"
}

5. 导出标注

端点: POST /api/v1/annotations/export

请求体:

{
  "format": "json",
  "filters": {
    "text_block_id": 1,
    "annotation_type": "keyword"
  }
}

响应:

{
  "export_id": 1,
  "status": "completed",
  "download_url": "/api/v1/exports/1"
}

6. 标注统计

端点: GET /api/v1/annotations/statistics

响应:

{
  "total_annotations": 150,
  "type_distribution": {
    "keyword": 50,
    "topic": 30,
    "entity": 40,
    "sentiment": 30
  },
  "importance_distribution": {
    "high": 20,
    "medium": 80,
    "low": 50
  },
  "average_confidence": 0.85
}

7. 添加评论

端点: POST /api/v1/annotations/{annotation_id}/comments

请求体:

{
  "content": "这个标注很准确",
  "author": "user1"
}

响应:

{
  "id": 1,
  "annotation_id": 1,
  "content": "这个标注很准确",
  "author": "user1",
  "created_at": "2026-04-01T10:10:00Z"
}


错误处理

错误响应格式

所有错误响应遵循统一格式:

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "输入文本不能为空",
    "details": {
      "field": "text",
      "reason": "required"
    }
  },
  "request_id": "req_123456"
}

常见错误码

错误码 HTTP状态 描述
VALIDATION_ERROR 400 请求参数验证失败
NOT_FOUND 404 资源不存在
UNAUTHORIZED 401 未授权
RATE_LIMIT_EXCEEDED 429 超过速率限制
INTERNAL_ERROR 500 内部服务器错误

使用示例

Python示例

import requests

# API基础URL
BASE_URL = "http://localhost:8001/api/v1"

# 1. 文本分块
response = requests.post(
    f"{BASE_URL}/text/chunk",
    json={
        "text": "混元灵通是智能气功的核心理论...",
        "max_chunk_size": 300
    }
)
chunks = response.json()["chunks"]

# 2. 生成嵌入
response = requests.post(
    f"{BASE_URL}/embeddings",
    json={
        "text": "混元灵通是智能气功的核心理论"
    }
)
vector = response.json()["vector"]

# 3. 检索
response = requests.post(
    f"{BASE_URL}/search",
    json={
        "query": "什么是混元灵通?",
        "method": "hybrid",
        "top_k": 5
    }
)
results = response.json()["results"]

# 4. RAG问答
response = requests.post(
    f"{BASE_URL}/rag/query",
    json={
        "question": "什么是混元灵通?"
    }
)
answer = response.json()["answer"]

# 5. 创建标注
response = requests.post(
    f"{BASE_URL}/annotations",
    json={
        "text_block_id": 1,
        "annotation_type": "keyword",
        "content": "混元灵通",
        "importance": "high"
    }
)
annotation = response.json()

JavaScript示例

const BASE_URL = 'http://localhost:8001/api/v1';

// 文本分块
async function chunkText(text) {
  const response = await fetch(`${BASE_URL}/text/chunk`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ text, max_chunk_size: 300 })
  });
  return response.json();
}

// RAG问答
async function askQuestion(question) {
  const response = await fetch(`${BASE_URL}/rag/query`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ question })
  });
  return response.json();
}

// 使用示例
const chunks = await chunkText('混元灵通是智能气功的核心理论...');
const answer = await askQuestion('什么是混元灵通?');
console.log(answer.answer);

性能指标

推荐配置

操作 推荐参数 预期性能
文本分块 max_chunk_size=300 <1秒/1000字
向量嵌入 batch_size=32 <5秒/100个
混合检索 top_k=10 <1秒
RAG问答 top_k=5 <3秒

优化建议

  1. 批量处理: 使用批量API提高吞吐量
  2. 缓存启用: 启用检索缓存减少重复计算
  3. 提供商选择: 短文本使用远程API,长文本使用本地模型

附录

A. 标注类型列表

类型 描述
关键词 keyword 重要关键词
主题 topic 内容主题
重要性 importance 重要性标注
情感 sentiment 情感倾向
实体 entity 命名实体
自定义 custom 自定义类型

B. 重要性级别

级别 描述
low 低重要性
medium 中等重要性
high 高重要性
关键 critical 关键内容

文档版本: v1.0.0

最后更新: 2026-04-01

众智混元,万法灵通 ⚡🚀