connectors.api_connector

API连接器模块 - 提供统一的外部API接口

Classes

APIConnector(api_url, api_key[, timeout])

API连接器基类

APIFactory()

API工厂类,创建不同服务的API连接器

MistralAPIConnector(api_url, api_key[, timeout])

Mistral AI API连接器

OCRAPIFactory()

OCR API工厂类,创建不同OCR服务的连接器

OpenAIAPIConnector(api_url, api_key[, timeout])

OpenAI API连接器

class connectors.api_connector.APIConnector(api_url, api_key, timeout=60)[source]

Bases: ABC

API连接器基类

__init__(api_url, api_key, timeout=60)[source]

初始化API连接器

Parameters:
  • api_url (str) – API端点URL

  • api_key (str) – API密钥

  • timeout (int) – 请求超时时间(秒)

make_request(method, endpoint, params=None, data=None, files=None, json_data=None, max_retries=3, retry_delay=2)[source]

发送API请求并处理响应

Parameters:
  • method (str) – 请求方法 (GET, POST, PUT, DELETE)

  • endpoint (str) – API端点路径

  • params (dict, optional) – URL参数

  • data (dict, optional) – 表单数据

  • files (dict, optional) – 文件数据

  • json_data (dict, optional) – JSON数据

  • max_retries (int) – 最大重试次数

  • retry_delay (int) – 重试延迟(秒)

Returns:

API响应数据

Return type:

dict

Raises:

Exception – 请求失败时抛出

class connectors.api_connector.MistralAPIConnector(api_url, api_key, timeout=60)[source]

Bases: APIConnector

Mistral AI API连接器

process_document_ocr(document_url, model='mistral-ocr-latest', include_image=False)[source]

使用Mistral OCR API处理文档

Parameters:
  • document_url (str) – 文档URL或Base64编码

  • model (str) – OCR模型名称

  • include_image (bool) – 是否包含图像数据

Returns:

OCR处理结果

Return type:

dict

process_image_ocr(image_path, model='mistral-ocr-latest')[source]

使用Mistral OCR API处理图像

Parameters:
  • image_path (str) – 图像文件路径

  • model (str) – OCR模型名称

Returns:

OCR处理结果

Return type:

dict

upload_file(file_path, purpose='ocr')[source]

上传文件到Mistral AI

Parameters:
  • file_path (str) – 文件路径

  • purpose (str) – 文件用途

Returns:

上传响应

Return type:

dict

get_signed_url(file_id)[source]

获取文件的签名URL

Parameters:

file_id (str) – 文件ID

Returns:

包含签名URL的响应

Return type:

dict

class connectors.api_connector.OpenAIAPIConnector(api_url, api_key, timeout=60)[source]

Bases: APIConnector

OpenAI API连接器

classify_document(content, categories=None, model='gpt-4')[source]

使用OpenAI API进行文档分类

Parameters:
  • content (str) – 文档内容

  • categories (List[str], optional) – 分类类别列表

  • model (str) – 使用的模型名称

Returns:

分类结果

Return type:

dict

extract_topics(content, model='gpt-4')[source]

使用OpenAI API提取文档主题和关键信息

Parameters:
  • content (str) – 文档内容

  • model (str) – 使用的模型名称

Returns:

主题提取结果

Return type:

dict

enhance_document_structure(content, model='gpt-4')[source]

使用OpenAI API增强文档结构识别

Parameters:
  • content (str) – 文档内容

  • model (str) – 使用的模型名称

Returns:

结构识别结果

Return type:

dict

class connectors.api_connector.APIFactory[source]

Bases: object

API工厂类,创建不同服务的API连接器

static create_connector(api_type, config)[source]

创建API连接器

Parameters:
  • api_type (str) – API类型,如 ‘openai’, ‘mistral’, ‘azure’

  • config (dict) – API配置

Returns:

API连接器实例

Return type:

APIConnector

Raises:

ValueError – 不支持的API类型

class connectors.api_connector.OCRAPIFactory[source]

Bases: object

OCR API工厂类,创建不同OCR服务的连接器

static create_connector(api_type, config)[source]

创建OCR API连接器

Parameters:
  • api_type (str) – API类型,如 ‘mistral’, ‘azure’, ‘google’

  • config (dict) – API配置

Returns:

API连接器实例

Return type:

APIConnector

Raises:

ValueError – 不支持的API类型