camel.loaders 包

本页内容

camel.loaders 包#

子模块#

camel.loaders.base_io 模块#

class camel.loaders.base_io.DocxFile(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基础类: File

classmethod from_bytes(file: BytesIO, filename: str) DocxFile[来源]#

从BytesIO对象创建一个DocxFile对象。

Parameters:
  • file (BytesIO) – 表示docx文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个DocxFile对象。

Return type:

DocxFile

class camel.loaders.base_io.File(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基类: ABC

表示由多个文档组成的已上传文件。

Parameters:
  • name (str) – 文件名。

  • file_id (str) - 文件的唯一标识符。

  • metadata (Dict[str, Any], optional) – 与文件关联的额外元数据。默认为None。

  • docs (List[Dict[str, Any]], optional) – 文件中包含的文档列表。默认为None。

  • raw_bytes (bytes, optional) – 文件的原始字节内容。 默认为 b""。

copy() 文件[来源]#

创建此文件的深拷贝

abstract classmethod from_bytes(file: BytesIO, filename: str) 文件[来源]#

从BytesIO对象创建一个File对象。

Parameters:
  • file (BytesIO) – 一个BytesIO对象,表示文件的内容。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

classmethod from_raw_bytes(raw_bytes: bytes, filename: str) 文件[来源]#

从原始字节创建一个File对象。

Parameters:
  • raw_bytes (bytes) – 文件的原始字节内容。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

class camel.loaders.base_io.HtmlFile(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基础类: File

classmethod from_bytes(file: BytesIO, filename: str) HtmlFile[来源]#

Creates a HtmlFile object from a BytesIO object.

Parameters:
  • file (BytesIO) – A BytesIO object representing the contents of the html file.

  • filename (str) – 文件名。

Returns:

A HtmlFile object.

Return type:

HtmlFile

class camel.loaders.base_io.JsonFile(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基础类: File

classmethod from_bytes(file: BytesIO, filename: str) JsonFile[来源]#

从BytesIO对象创建一个JsonFile对象。

Parameters:
  • file (BytesIO) – 表示json文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个JsonFile对象。

Return type:

JsonFile

class camel.loaders.base_io.PdfFile(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基础类: File

classmethod from_bytes(file: BytesIO, filename: str) PdfFile[来源]#

从BytesIO对象创建一个PdfFile对象。

Parameters:
  • file (BytesIO) – 一个表示PDF文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个PdfFile对象。

Return type:

PdfFile

class camel.loaders.base_io.TxtFile(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基础类: File

classmethod from_bytes(file: BytesIO, filename: str) TxtFile[来源]#

从BytesIO对象创建一个TxtFile对象。

Parameters:
  • file (BytesIO) – 表示txt文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个TxtFile对象。

Return type:

TxtFile

camel.loaders.base_io.create_file(file: BytesIO, filename: str) 文件[来源]#

读取上传的文件并返回一个File对象。

Parameters:
  • file (BytesIO) – 表示文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

camel.loaders.base_io.create_file_from_raw_bytes(raw_bytes: bytes, filename: str) 文件[来源]#

读取原始字节并返回一个File对象。

Parameters:
  • raw_bytes (bytes) – 文件的原始字节内容。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

camel.loaders.base_io.strip_consecutive_newlines(text: str) str[来源]#

从字符串中去除连续的换行符。

Parameters:

text (str) – 要剥离的字符串。

Returns:

去除连续换行符后的字符串。

Return type:

字符串

camel.loaders.firecrawl_reader 模块#

class camel.loaders.firecrawl_reader.Firecrawl(api_key: str | None = None, api_url: str | None = None)[来源]#

基类:object

Firecrawl 能够将整个网站转换为适合LLM处理的markdown格式。

Parameters:
  • api_key (可选[str]) - 用于Firecrawl API身份验证的API密钥。

  • api_url (可选[str]) - Firecrawl API的基础URL。

参考文献

https://docs.firecrawl.dev/introduction

check_crawl_job(job_id: str) Dict[来源]#

检查爬取作业的状态。

Parameters:

job_id (str) – 爬取任务的ID。

Returns:

包含爬取任务状态的响应。

Return type:

字典

Raises:

RuntimeError - 如果检查过程失败。

crawl(url: str, params: Dict[str, Any] | None = None, **kwargs: Any) Any[来源]#

爬取一个URL及其所有可访问的子页面。通过设置不同的参数来自定义爬取过程,并根据指定的选项接收完整响应或作业ID。

Parameters:
  • url (str) - 要爬取的URL。

  • params (Optional[Dict[str, Any]]) – 爬取请求的额外参数。默认为 None

  • **kwargs (Any) – 额外的关键字参数,例如 poll_interval, idempotency_key

Returns:

爬取任务ID或如果等待直到完成时的爬取结果

完成。

Return type:

任何

Raises:

RuntimeError – 如果爬取过程失败。

map_site(url: str, params: Dict[str, Any] | None = None) list[来源]#

映射一个网站以检索所有可访问的URL。

Parameters:
  • url (str) – 要映射的站点URL。

  • params (Optional[Dict[str, Any]]) - 用于地图请求的附加参数。默认为None

Returns:

包含在网站上找到的URL列表。

Return type:

列表

Raises:

RuntimeError - 如果映射过程失败。

scrape(url: str, params: Dict[str, Any] | None = None) Dict[来源]#

用于抓取单个URL。该函数通过设置不同参数支持高级抓取功能,并以字典形式返回完整的抓取数据。

参考文档:https://docs.firecrawl.dev/advanced-scraping-guide

Parameters:
  • url (str) – 要读取的URL。

  • params (Optional[Dict[str, Any]]) – 用于抓取请求的额外参数。

Returns:

抓取的数据。

Return type:

字典

Raises:

RuntimeError – 如果抓取过程失败。

structured_scrape(url: str, response_format: BaseModel) Dict[来源]#

使用LLM从给定URL提取结构化数据。

Parameters:
  • url (str) – 要读取的URL。

  • response_format (BaseModel) – 一个pydantic模型,包含值类型和字段描述,用于通过LLM生成结构化响应。此模式有助于定义预期的输出格式。

Returns:

URL的内容。

Return type:

字典

Raises:

RuntimeError – 如果抓取过程失败。

camel.loaders.jina_url_reader 模块#

class camel.loaders.jina_url_reader.JinaURLReader(api_key: str | None = None, return_format: JinaReturnFormat = JinaReturnFormat.DEFAULT, json_response: bool = False, timeout: int = 30, **kwargs: Any)[来源]#

基类:object

由Jina AI提供的URL阅读器。与UnstructuredIO的URL阅读器相比,其输出更简洁且对LLM更友好。可以配置为在流水线中替换UnstructuredIO的URL阅读器。

Parameters:
  • api_key (Optional[str], optional) – Jina AI的API密钥。如果未提供,读取器将会有较低的速率限制。默认为None。

  • return_format (ReturnFormat, optional) – 返回内容的详细程度,该参数针对LLMs进行了优化。目前不支持截图。默认为ReturnFormat.DEFAULT。

  • json_response (bool, optional) – 是否以JSON格式返回响应。默认为False。

  • timeout (int, optional) - 等待页面渲染的最大时间(以秒为单位)。默认为30秒。

  • **kwargs (Any) – 额外的关键字参数,包括代理、 cookies等。它应该与参考中列出的HTTP头字段和 值对保持一致。

参考文献

https://jina.ai/reader

read_content(url: str) str[来源]#

读取URL的内容并以给定形式返回字符串。

Parameters:

url (str) – 要读取的URL。

Returns:

URL的内容。

Return type:

字符串

camel.loaders.unstructured_io 模块#

class camel.loaders.unstructured_io.UnstructuredIO[来源]#

基类:object

一个用于处理Unstructured库提供的各种功能的类,包括版本检查、解析、清理、提取、暂存、数据分块,以及与S3和Azure等云服务集成以实现数据连接。

参考文献

https://docs.unstructured.io/

static chunk_elements(elements: List[Element], chunk_type: str, **kwargs) List[Element][来源]#

按标题分块元素。

Parameters:
  • elements (List[Element]) - 需要分块的Element对象列表。

  • chunk_type (str) – 要应用的块类型。支持的类型: 'chunk_by_title'。

  • **kwargs - 用于分块的额外关键字参数。

Returns:

分块部分的列表。

Return type:

列表[字典]

参考文献

https://unstructured-io.github.io/unstructured/

static clean_text_data(text: str, clean_options: List[Tuple[str, Dict[str, Any]]] | None = None) str[来源]#

使用unstructured库提供的多种清理函数来清理文本数据。

该函数通过调用unstructured库的清理模块来应用多种文本清理工具,执行诸如替换Unicode引号、删除多余空格、破折号、非ASCII字符等操作。

如果没有提供清理选项,将应用一组默认的清理操作。这些默认操作包括"replace_unicode_quotes"、"clean_non_ascii_chars"、"group_broken_paragraphs"和"clean_extra_whitespace"。

Parameters:
  • text (str) – 需要清理的文本。

  • clean_options (dict) - 一个指定应用哪些清洗选项的字典。键应匹配清洗函数的名称,值应包含每个函数参数的字典。支持的类型:'clean_extra_whitespace', 'clean_bullets', 'clean_ordered_bullets', 'clean_postfix', 'clean_prefix', 'clean_dashes', 'clean_trailing_punctuation', 'clean_non_ascii_chars', 'group_broken_paragraphs', 'remove_punctuation', 'replace_unicode_quotes', 'bytes_string_to_string', 'translate_text'。

Returns:

清理后的文本。

Return type:

字符串

Raises:

AttributeError - 如果清理选项与unstructured中的有效清理函数不匹配。

注意事项

'options'字典的键必须对应于unstructured库中的有效清洗模块名称。 每个模块的参数必须作为键值以嵌套字典的形式提供。

参考文献

https://unstructured-io.github.io/unstructured/

static create_element_from_text(text: str, element_id: str | None = None, embeddings: List[float] | None = None, filename: str | None = None, file_directory: str | None = None, last_modified: str | None = None, filetype: str | None = None, parent_id: str | None = None) Element[来源]#

从给定的文本输入创建一个Text元素,可选择包含元数据和嵌入向量。

Parameters:
  • text (str) - 元素的文本内容。

  • element_id (可选[str], 可选) – 元素的唯一标识符。(默认: None)

  • embeddings (List[float], optional) – 一个表示文本嵌入的浮点数列表。 (default: None)

  • filename (可选[str], 可选) – 与该元素关联的文件名。(默认: None)

  • file_directory (Optional[str], optional) – 文件所在的目录路径。(默认: None)

  • last_modified (Optional[str], optional) – 文件的最后修改日期。(默认: None)

  • filetype (可选[str], optional) – 文件类型。 (默认: None)

  • parent_id (可选[str], 可选) – 父元素的标识符。(默认: None)

Returns:

一个包含提供内容和

元数据的Text实例。

Return type:

元素

static extract_data_from_text(text: str, extract_type: Literal['extract_datetimetz', 'extract_email_address', 'extract_ip_address', 'extract_ip_address_name', 'extract_mapi_id', 'extract_ordered_bullets', 'extract_text_after', 'extract_text_before', 'extract_us_phone_number'], **kwargs) Any[来源]#

使用unstructured.cleaners.extract中的函数从文本中提取各种类型的数据。

Parameters:
  • text (str) – 用于提取数据的文本。

  • (Literal['extract_datetimetz' (extract_type) – 'extract_email_address', 'extract_ip_address', 'extract_ip_address_name', 'extract_mapi_id', 'extract_ordered_bullets', 'extract_text_after', 'extract_text_before', 'extract_us_phone_number']): 要提取的数据类型。

:param‘extract_email_address’, ‘extract_ip_address’,

‘extract_ip_address_name’, ‘extract_mapi_id’, ‘extract_ordered_bullets’, ‘extract_text_after’, ‘extract_text_before’, ‘extract_us_phone_number’]): 要提取的数据类型。

Parameters:

**kwargs – 用于特定提取函数的额外关键字参数。

Returns:

提取的数据类型取决于extract_type。

Return type:

任何

参考文献

https://unstructured-io.github.io/unstructured/

static parse_bytes(file: IO[bytes], **kwargs: Any) List[Element] | None[来源]#

解析字节流并将其内容转换为元素。

Parameters:
  • file (IO[bytes]) – 要解析的字节格式文件。

  • **kwargs – 传递给分区函数的额外参数。

Returns:

解析文件后的元素列表

如果成功,否则为None

Return type:

Union[List[Element], None]

注意事项

Supported file types:

“csv”, “doc”, “docx”, “epub”, “图片”, “md”, “msg”, “odt”, “org”, “pdf”, “ppt”, “pptx”, “rtf”, “rst”, “tsv”, “xlsx”.

参考文献

https://docs.unstructured.io/open-source/core-functionality/partitioning

static parse_file_or_url(input_path: str, **kwargs: Any) List[Element] | None[来源]#

加载文件或URL并将其内容解析为元素。

Parameters:
  • input_path (str) - 要解析的文件路径或URL。

  • **kwargs – 传递给分区函数的额外参数。

Returns:

解析文件后的元素列表

如果成功则为URL。

Return type:

联合[列表[元素],无]

Raises:

FileNotFoundError - 如果指定路径下不存在该文件。

注意事项

Supported file types:

“csv”, “doc”, “docx”, “epub”, “image”, “md”, “msg”, “odt”, “org”, “pdf”, “ppt”, “pptx”, “rtf”, “rst”, “tsv”, “xlsx”.

参考文献

https://unstructured-io.github.io/unstructured/

static stage_elements(elements: List[Any], stage_type: Literal['convert_to_csv', 'convert_to_dataframe', 'convert_to_dict', 'dict_to_elements', 'stage_csv_for_prodigy', 'stage_for_prodigy', 'stage_for_baseplate', 'stage_for_datasaur', 'stage_for_label_box', 'stage_for_label_studio', 'stage_for_weaviate'], **kwargs) str | List[Dict] | Any[来源]#

根据指定的暂存类型,为不同平台暂存元素。

该函数应用多种数据暂存工具来格式化数据,以适应不同的NLP标注和机器学习工具。它使用'unstructured.staging'模块中的函数执行操作,如转换为CSV、DataFrame、字典,或为特定平台(如Prodigy等)格式化数据。

Parameters:
  • elements (List[Any]) – 需要暂存的元素对象列表。

  • (Literal['convert_to_csv' (stage_type) – 'convert_to_dict', 'dict_to_elements', 'stage_csv_for_prodigy', 'stage_for_prodigy', 'stage_for_baseplate', 'stage_for_datasaur', 'stage_for_label_box', 'stage_for_label_studio', 'stage_for_weaviate']): 要执行的暂存类型。

  • 'convert_to_dataframe' – ‘convert_to_dict’, ‘dict_to_elements’, ‘stage_csv_for_prodigy’, ‘stage_for_prodigy’, ‘stage_for_baseplate’, ‘stage_for_datasaur’, ‘stage_for_label_box’, ‘stage_for_label_studio’, ‘stage_for_weaviate’]): 要执行的暂存类型。

:param‘convert_to_dict’, ‘dict_to_elements’,

‘stage_csv_for_prodigy’, ‘stage_for_prodigy’, ‘stage_for_baseplate’, ‘stage_for_datasaur’, ‘stage_for_label_box’, ‘stage_for_label_studio’, ‘stage_for_weaviate’]): 要执行的暂存类型。

Parameters:

**kwargs – 特定于该暂存类型的额外关键字参数。

Returns:

暂存区中的数据

格式适合指定的暂存类型。

Return type:

Union[str, List[Dict], Any]

Raises:

ValueError - 如果暂存类型不受支持或缺少必需的参数。

参考文献

https://unstructured-io.github.io/unstructured/

模块内容#

class camel.loaders.Apify(api_key: str | None = None)[来源]#

基类:object

Apify是一个可以自动化任何网络工作流程的平台。

Parameters:

api_key (可选[str]) – 用于Apify API身份验证的API密钥。

get_dataset(dataset_id: str) dict | None[来源]#

从Apify平台获取数据集。

Parameters:

dataset_id (str) – 要获取的数据集的ID。

Returns:

数据集。

Return type:

字典

Raises:

RuntimeError - 如果数据集获取失败。

get_dataset_client(dataset_id: str) DatasetClient[来源]#

从Apify平台获取数据集客户端。

Parameters:

dataset_id (str) – 要获取客户端的数据集ID。

Returns:

数据集客户端。

Return type:

DatasetClient

Raises:

RuntimeError - 如果无法获取数据集客户端。

get_dataset_items(dataset_id: str) List[来源]#

从Apify平台的数据集中获取项目。

Parameters:

dataset_id (str) – 要从中获取数据项的dataset ID。

Returns:

数据集中的项目。

Return type:

列表

Raises:

RuntimeError - 如果项目检索失败。

get_datasets(unnamed: bool | None = None, limit: int | None = None, offset: int | None = None, desc: bool | None = None) List[dict][来源]#

从Apify平台获取所有命名数据集。

Parameters:
  • unnamed (bool, optional) – 是否在列表中包含未命名的键值存储

  • limit (int, optional) – 要检索多少个键值存储

  • offset (int, optional) - 在检索列表时,将哪个键值存储作为第一个包含

  • desc (bool, optional) – 是否根据修改日期对键值存储进行降序排序

Returns:

数据集。

Return type:

列表[字典]

Raises:

RuntimeError - 如果数据集获取失败。

run_actor(actor_id: str, run_input: dict | None = None, content_type: str | None = None, build: str | None = None, max_items: int | None = None, memory_mbytes: int | None = None, timeout_secs: int | None = None, webhooks: list | None = None, wait_secs: int | None = None) dict | None[来源]#

在Apify平台上运行一个actor。

Parameters:
  • actor_id (str) - 要运行的actor的ID。

  • run_input (可选[dict]) – 执行者的输入数据。默认为None

  • content_type (str, optional) – 输入的内容类型。

  • build (str, optional) - 指定要运行的Actor构建版本。可以是构建标签或构建编号。默认情况下,运行会使用Actor默认运行配置中指定的构建版本(通常是最新的)。

  • max_items (int, optional) - 本次运行将返回的最大结果数量。如果Actor按结果计费,您不会被收取超过给定限制的结果费用。

  • memory_mbytes (int, optional) – 运行的内存限制,单位为兆字节。默认情况下,运行使用Actor的默认运行配置中指定的内存限制。

  • timeout_secs (int, optional) - 运行的可选超时时间,单位为秒。默认情况下,运行使用Actor默认运行配置中指定的超时时间。

  • webhooks (list, optional) – 可选的webhooks (https://docs.apify.com/webhooks) 与Actor运行相关联,可用于接收通知,例如当Actor完成或失败时。如果您已经为Actor设置了webhook,则无需在此处再次添加。

  • wait_secs (int, optional) - 服务器等待完成的最大秒数。如果未提供,则无限期等待。

Returns:

如果成功,来自actor的输出数据。 # 请使用 'defaultDatasetId' 获取数据集

Return type:

可选[字典]

Raises:

RuntimeError – 如果actor运行失败。

update_dataset(dataset_id: str, name: str) dict[来源]#

更新Apify平台上的数据集。

Parameters:
  • dataset_id (str) – 要更新的数据集ID。

  • name (str) - 数据集的新名称。

Returns:

更新后的数据集。

Return type:

字典

Raises:

RuntimeError - 如果数据集更新失败。

class camel.loaders.ChunkrReader(api_key: str | None = None, url: str | None = 'https://api.chunkr.ai/api/v1/task', timeout: int = 30, **kwargs: Any)[来源]#

基类:object

Chunkr Reader 用于处理文档并以多种格式返回内容。

Parameters:
  • api_key (Optional[str], optional) – Chunkr API的API密钥。如果未提供,将从环境变量CHUNKR_API_KEY中获取。(默认值: None)

  • url (可选[str], optional) – Chunkr服务的URL地址。 (默认值: https://api.chunkr.ai/api/v1/task)

  • timeout (int, optional) – 等待API响应的最长时间,单位为秒。(默认值: 30)

  • **kwargs (Any) – 用于请求头的额外关键字参数。

get_task_output(task_id: str, max_retries: int = 5) str[来源]#

轮询Chunkr API以检查任务状态并返回任务结果。

Parameters:
  • task_id (str) – 用于检查状态的task ID。

  • max_retries (int, optional) – 最大重试次数。 (默认: 5)

Returns:

格式化后的任务结果以JSON格式呈现。

Return type:

字符串

Raises:
  • ValueError - 如果无法获取任务状态。

  • RuntimeError – 如果达到最大重试次数仍未成功完成任务。

submit_task(file_path: str, model: str = 'Fast', ocr_strategy: str = 'Auto', target_chunk_length: str = '512') str[来源]#

将文件提交到Chunkr API并返回任务ID。

Parameters:
  • file_path (str) - 要上传的文件路径。

  • model (str, optional) – 用于任务的模型。 (默认: Fast)

  • ocr_strategy (str, optional) – OCR策略。默认为'Auto'。

  • target_chunk_length (str, optional) – 目标块长度。 (默认值: 512)

Returns:

任务ID。

Return type:

字符串

class camel.loaders.Crawl4AI[来源]#

基类:object

用于将网站转换为LLM就绪数据的类。

该类使用带有CSS选择器或基于LLM的异步爬取技术,将整个网站转换为结构化数据。

参考文献

https://docs.crawl4ai.com/

async crawl(start_url: str, max_depth: int = 1, extraction_strategy=None, **kwargs) List[Dict[str, Any]][来源]#

使用广度优先搜索爬取一个URL及其子页面。

Parameters:
  • start_url (str) - 开始爬取的URL。

  • max_depth (int, optional) – 要跟踪链接的最大深度 (默认值: 1)

  • extraction_strategy (ExtractionStrategy, optional) – 数据提取策略。(默认: None)

  • **kwargs - 用于爬虫配置的附加参数。

Returns:

已爬取页面结果列表。

Return type:

List[Dict[str, Any]]

Raises:

RuntimeError – 如果在爬取过程中发生错误。

async map_site(start_url: str, **kwargs) List[str][来源]#

通过提取所有可访问的URL来映射网站。

Parameters:
  • start_url (str) - 要映射的起始URL。

  • **kwargs – 额外的配置参数。

Returns:

在网站上发现的URL列表。

Return type:

List[str]

Raises:

运行时错误 – 如果映射失败。

async scrape(url: str, extraction_strategy=None, **kwargs) Dict[str, Any][来源]#

使用CSS或基于LLM的提取方法抓取单个URL。

Parameters:
  • url (str) – 要抓取的URL。

  • extraction_strategy (ExtractionStrategy, optional) – 要使用的提取策略。(默认: None)

  • **kwargs - 用于爬虫配置的附加参数。

Returns:

Dictionary containing scraped data such as markdown

and HTML content.

Return type:

字典[字符串, 任意类型]

Raises:

RuntimeError – 如果抓取失败。

async structured_scrape(url: str, response_format: BaseModel, api_key: str | None = None, llm_provider: str = 'ollama/llama3', **kwargs) Any[来源]#

使用LLM从URL中提取结构化数据。

Parameters:
  • url (str) – 要抓取的URL。

  • response_format (BaseModel) – 定义预期输出模式的模型。

  • api_key (str, optional) – 用于LLM提供商的API密钥 (默认: None).

  • llm_provider (str, optional) – LLM提供商的标识符 (默认: 'ollama/llama3').

  • **kwargs - 用于爬虫配置的附加参数。

Returns:

包含提取数据的爬取结果

按照模式结构化。

Return type:

任何

Raises:
  • ValidationError - 如果提取的数据与模式不匹配。

  • RuntimeError – 如果提取失败。

class camel.loaders.File(name: str, file_id: str, metadata: Dict[str, Any] | None = None, docs: List[Dict[str, Any]] | None = None, raw_bytes: bytes = b'')[来源]#

基类: ABC

表示由多个文档组成的已上传文件。

Parameters:
  • name (str) – 文件名。

  • file_id (str) - 文件的唯一标识符。

  • metadata (Dict[str, Any], optional) – 与文件关联的额外元数据。默认为None。

  • docs (List[Dict[str, Any]], optional) – 文件中包含的文档列表。默认为None。

  • raw_bytes (bytes, optional) – 文件的原始字节内容。 默认为 b""。

copy() 文件[来源]#

创建此文件的深拷贝

abstract classmethod from_bytes(file: BytesIO, filename: str) 文件[来源]#

从BytesIO对象创建一个File对象。

Parameters:
  • file (BytesIO) – 表示文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

classmethod from_raw_bytes(raw_bytes: bytes, filename: str) 文件[来源]#

从原始字节创建一个File对象。

Parameters:
  • raw_bytes (bytes) – 文件的原始字节内容。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

class camel.loaders.Firecrawl(api_key: str | None = None, api_url: str | None = None)[来源]#

基类:object

Firecrawl 能够将整个网站转换为适合LLM处理的markdown格式。

Parameters:
  • api_key (可选[str]) - 用于Firecrawl API身份验证的API密钥。

  • api_url (可选[str]) - Firecrawl API的基础URL。

参考文献

https://docs.firecrawl.dev/introduction

check_crawl_job(job_id: str) Dict[来源]#

检查爬取作业的状态。

Parameters:

job_id (str) – 爬取任务的ID。

Returns:

包含爬取任务状态的响应。

Return type:

字典

Raises:

RuntimeError - 如果检查过程失败。

crawl(url: str, params: Dict[str, Any] | None = None, **kwargs: Any) Any[来源]#

爬取一个URL及其所有可访问的子页面。通过设置不同的参数来自定义爬取过程,并根据指定的选项接收完整响应或作业ID。

Parameters:
  • url (str) - 要爬取的URL。

  • params (Optional[Dict[str, Any]]) – 爬取请求的额外参数。默认为 None

  • **kwargs (Any) – 额外的关键字参数,例如 poll_interval, idempotency_key

Returns:

爬取任务ID或如果等待直到完成时的爬取结果

完成。

Return type:

任何

Raises:

RuntimeError – 如果爬取过程失败。

map_site(url: str, params: Dict[str, Any] | None = None) list[来源]#

映射一个网站以检索所有可访问的URL。

Parameters:
  • url (str) – 要映射的站点URL。

  • params (Optional[Dict[str, Any]]) - 用于地图请求的附加参数。默认为None

Returns:

包含在网站上找到的URL列表。

Return type:

列表

Raises:

RuntimeError - 如果映射过程失败。

scrape(url: str, params: Dict[str, Any] | None = None) Dict[来源]#

用于抓取单个URL。该函数通过设置不同参数支持高级抓取功能,并以字典形式返回完整的抓取数据。

参考文档:https://docs.firecrawl.dev/advanced-scraping-guide

Parameters:
  • url (str) – 要读取的URL。

  • params (Optional[Dict[str, Any]]) – 用于抓取请求的额外参数。

Returns:

抓取的数据。

Return type:

字典

Raises:

RuntimeError – 如果抓取过程失败。

structured_scrape(url: str, response_format: BaseModel) Dict[来源]#

使用LLM从给定URL提取结构化数据。

Parameters:
  • url (str) – 要读取的URL。

  • response_format (BaseModel) – 一个pydantic模型,包含值类型和字段描述,用于通过LLM生成结构化响应。此模式有助于定义预期的输出格式。

Returns:

URL的内容。

Return type:

字典

Raises:

RuntimeError – 如果抓取过程失败。

class camel.loaders.JinaURLReader(api_key: str | None = None, return_format: JinaReturnFormat = JinaReturnFormat.DEFAULT, json_response: bool = False, timeout: int = 30, **kwargs: Any)[来源]#

基类:object

由Jina AI提供的URL阅读器。与UnstructuredIO的URL阅读器相比,其输出更简洁且对LLM更友好。可以配置为在流水线中替换UnstructuredIO的URL阅读器。

Parameters:
  • api_key (Optional[str], optional) – Jina AI的API密钥。如果未提供,读取器将会有较低的速率限制。默认为None。

  • return_format (ReturnFormat, optional) – 返回内容的详细程度,该参数针对LLMs进行了优化。目前不支持截图。默认为ReturnFormat.DEFAULT。

  • json_response (bool, optional) – 是否以JSON格式返回响应。默认为False。

  • timeout (int, optional) - 等待页面渲染的最大时间(以秒为单位)。默认为30秒。

  • **kwargs (Any) – 额外的关键字参数,包括代理、 cookies等。它应该与参考中列出的HTTP头字段和 值对保持一致。

参考文献

https://jina.ai/reader

read_content(url: str) str[来源]#

读取URL的内容并以给定形式返回字符串。

Parameters:

url (str) – 要读取的URL。

Returns:

URL的内容。

Return type:

字符串

class camel.loaders.MinerU(api_key: str | None = None, api_url: str | None = 'https://mineru.net/api/v4', is_ocr: bool = False, enable_formula: bool = False, enable_table: bool = True, layout_model: str = 'doclayout_yolo', language: str = 'en')[来源]#

基类:object

Document extraction service supporting OCR, formula recognition

和表格。

Parameters:
  • api_key (str, optional) – MinerU API服务的认证密钥。 如果未提供,将使用MINERU_API_KEY环境变量。 (默认值: None)

  • api_url (str, optional) – MinerU API服务的基础URL端点。 (默认值: "https://mineru.net/api/v4")

注意

  • 单个文件大小限制:200MB

  • 每个文件页数限制:600页

  • 每日高优先级解析配额:2000页

  • 某些URL(GitHub、AWS)可能会因网络限制而超时

batch_extract_urls(files: List[Dict[str, str | bool]]) str[来源]#

从多个文档URL批量提取内容。

Parameters:

files (List[Dict[str, Union[str, bool]]]) - 文档配置列表。每个文档需要'url'参数,并可选择性地包含'is_ocr'和'data_id'参数。

Returns:

用于跟踪提取进度的批次标识符。

Return type:

字符串

extract_url(url: str) Dict[来源]#

从URL文档中提取内容。

Parameters:

url (str) – 用于提取内容的文档URL。

Returns:

用于跟踪提取进度的任务标识符。

Return type:

字典

get_batch_status(batch_id: str) Dict[来源]#

获取批量提取任务的状态。

Parameters:

batch_id (str) – 批次提取任务的唯一标识符。

Returns:

当前批次中所有文档的状态和结果。

Return type:

字典

get_task_status(task_id: str) Dict[来源]#

获取单个提取任务的状态。

Parameters:

task_id (str) – 提取任务的唯一标识符。

Returns:

当前任务状态及完成后的结果。

Return type:

字典

wait_for_completion(task_id: str, is_batch: bool = False, timeout: float = 100, check_interval: float = 5) Dict[来源]#

监控任务直到完成或超时。

Parameters:
  • task_id (str) - 任务或批次的唯一标识符。

  • is_batch (bool, optional) – 表示任务是否为批量操作。 (默认: False)

  • timeout (float, optional) – 最大等待时间,单位为秒。 (默认值: 100)

  • check_interval (float, optional) – 状态检查之间的时间间隔,单位为秒。(默认值: 5)

Returns:

最终任务状态和提取结果。

Return type:

字典

Raises:
  • TimeoutError – 如果任务超过指定的超时时间。

  • RuntimeError - 如果任务失败或遇到处理错误。

class camel.loaders.PandasReader(config: Dict[str, Any] | None = None)[来源]#

基类:object

load(data: DataFrame | str, *args: Any, **kwargs: Dict[str, Any]) DataFrame | SmartDataframe[来源]#

加载文件或DataFrame并返回DataFrame或SmartDataframe对象。

如果在配置字典中配置了LLM,将返回一个SmartDataframe,否则将返回一个常规的pandas DataFrame。

Parameters:
  • data (Union[DataFrame, str]) – 要加载的数据。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 或 SmartDataframe

对象。

Return type:

Union[DataFrame, SmartDataframe]

read_clipboard(*args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取剪贴板内容并返回一个DataFrame。

Parameters:
  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_csv(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取CSV文件并返回一个DataFrame。

Parameters:
  • file_path (str) - CSV文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame对象。

Return type:

数据框

read_excel(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取Excel文件并返回一个DataFrame。

Parameters:
  • file_path (str) - Excel文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_feather(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取Feather文件并返回一个DataFrame。

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

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_hdf(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取HDF文件并返回一个DataFrame。

Parameters:
  • file_path (str) - HDF文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_html(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

Reads an HTML file and returns a DataFrame.

Parameters:
  • file_path (str) – The path to the HTML file.

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_json(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取JSON文件并返回一个DataFrame。

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

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_orc(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取ORC文件并返回一个DataFrame。

Parameters:
  • file_path (str) - ORC文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_parquet(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取Parquet文件并返回一个DataFrame。

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

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_pickle(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取一个Pickle文件并返回一个DataFrame。

Parameters:
  • file_path (str) - Pickle文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_sas(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取SAS文件并返回一个DataFrame。

Parameters:
  • file_path (str) - SAS文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_sql(*args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取SQL文件并返回一个DataFrame。

Parameters:
  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_stata(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取Stata文件并返回一个DataFrame。

Parameters:
  • file_path (str) - Stata文件的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

read_table(file_path: str, *args: Any, **kwargs: Dict[str, Any]) DataFrame[来源]#

读取一个表并返回一个DataFrame。

Parameters:
  • file_path (str) – 表格的路径。

  • *args (任意类型) - 额外的位置参数。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

DataFrame 对象。

Return type:

数据框

class camel.loaders.UnstructuredIO[来源]#

基类:object

一个用于处理Unstructured库提供的各种功能的类,包括版本检查、解析、清理、提取、暂存、数据分块,以及与S3和Azure等云服务集成以实现数据连接。

参考文献

https://docs.unstructured.io/

static chunk_elements(elements: List[Element], chunk_type: str, **kwargs) List[Element][来源]#

按标题分块元素。

Parameters:
  • elements (List[Element]) - 需要分块的Element对象列表。

  • chunk_type (str) – 要应用的块类型。支持的类型: 'chunk_by_title'。

  • **kwargs - 用于分块的额外关键字参数。

Returns:

分块部分的列表。

Return type:

列表[字典]

参考文献

https://unstructured-io.github.io/unstructured/

static clean_text_data(text: str, clean_options: List[Tuple[str, Dict[str, Any]]] | None = None) str[来源]#

使用unstructured库提供的多种清理函数来清理文本数据。

该函数通过调用unstructured库的清理模块来应用多种文本清理工具,执行诸如替换Unicode引号、删除多余空格、破折号、非ASCII字符等操作。

如果没有提供清理选项,将应用一组默认的清理操作。这些默认操作包括"replace_unicode_quotes"、"clean_non_ascii_chars"、"group_broken_paragraphs"和"clean_extra_whitespace"。

Parameters:
  • text (str) – 需要清理的文本。

  • clean_options (dict) - 一个指定应用哪些清洗选项的字典。键应匹配清洗函数的名称,值应包含每个函数参数的字典。支持的类型:'clean_extra_whitespace', 'clean_bullets', 'clean_ordered_bullets', 'clean_postfix', 'clean_prefix', 'clean_dashes', 'clean_trailing_punctuation', 'clean_non_ascii_chars', 'group_broken_paragraphs', 'remove_punctuation', 'replace_unicode_quotes', 'bytes_string_to_string', 'translate_text'。

Returns:

清理后的文本。

Return type:

字符串

Raises:

AttributeError - 如果清理选项与unstructured中的有效清理函数不匹配。

注意事项

'options'字典的键必须对应于unstructured库中的有效清洗模块名称。 每个模块的参数必须作为键值以嵌套字典的形式提供。

参考文献

https://unstructured-io.github.io/unstructured/

static create_element_from_text(text: str, element_id: str | None = None, embeddings: List[float] | None = None, filename: str | None = None, file_directory: str | None = None, last_modified: str | None = None, filetype: str | None = None, parent_id: str | None = None) Element[来源]#

从给定的文本输入创建一个Text元素,可选择包含元数据和嵌入向量。

Parameters:
  • text (str) - 元素的文本内容。

  • element_id (可选[str], 可选) – 元素的唯一标识符。(默认: None)

  • embeddings (List[float], optional) – 一个表示文本嵌入的浮点数列表。 (default: None)

  • filename (可选[str], 可选) – 与该元素关联的文件名。(默认: None)

  • file_directory (Optional[str], optional) – 文件所在的目录路径。(默认: None)

  • last_modified (Optional[str], optional) – 文件的最后修改日期。(默认: None)

  • filetype (可选[str], optional) – 文件类型。 (默认: None)

  • parent_id (可选[str], 可选) – 父元素的标识符。(默认: None)

Returns:

一个包含提供内容和

元数据的Text实例。

Return type:

元素

static extract_data_from_text(text: str, extract_type: Literal['extract_datetimetz', 'extract_email_address', 'extract_ip_address', 'extract_ip_address_name', 'extract_mapi_id', 'extract_ordered_bullets', 'extract_text_after', 'extract_text_before', 'extract_us_phone_number'], **kwargs) Any[来源]#

使用unstructured.cleaners.extract中的函数从文本中提取各种类型的数据。

Parameters:
  • text (str) – 用于提取数据的文本。

  • (Literal['extract_datetimetz' (extract_type) – 'extract_email_address', 'extract_ip_address', 'extract_ip_address_name', 'extract_mapi_id', 'extract_ordered_bullets', 'extract_text_after', 'extract_text_before', 'extract_us_phone_number']): 要提取的数据类型。

:param‘extract_email_address’, ‘extract_ip_address’,

‘extract_ip_address_name’, ‘extract_mapi_id’, ‘extract_ordered_bullets’, ‘extract_text_after’, ‘extract_text_before’, ‘extract_us_phone_number’]): 要提取的数据类型。

Parameters:

**kwargs – 用于特定提取函数的额外关键字参数。

Returns:

提取的数据类型取决于extract_type。

Return type:

任何

参考文献

https://unstructured-io.github.io/unstructured/

static parse_bytes(file: IO[bytes], **kwargs: Any) List[Element] | None[来源]#

解析字节流并将其内容转换为元素。

Parameters:
  • file (IO[bytes]) – 要解析的字节格式文件。

  • **kwargs – 传递给分区函数的额外参数。

Returns:

解析文件后的元素列表

如果成功,否则为None

Return type:

Union[List[Element], None]

注意事项

Supported file types:

“csv”, “doc”, “docx”, “epub”, “image”, “md”, “msg”, “odt”, “org”, “pdf”, “ppt”, “pptx”, “rtf”, “rst”, “tsv”, “xlsx”.

参考文献

https://docs.unstructured.io/open-source/core-functionality/partitioning

static parse_file_or_url(input_path: str, **kwargs: Any) List[Element] | None[来源]#

加载文件或URL并将其内容解析为元素。

Parameters:
  • input_path (str) - 要解析的文件路径或URL。

  • **kwargs – 传递给分区函数的额外参数。

Returns:

解析文件后的元素列表

如果成功则为URL。

Return type:

联合[列表[元素],无]

Raises:

FileNotFoundError - 如果指定路径下不存在该文件。

注意事项

Supported file types:

“csv”, “doc”, “docx”, “epub”, “image”, “md”, “msg”, “odt”, “org”, “pdf”, “ppt”, “pptx”, “rtf”, “rst”, “tsv”, “xlsx”.

参考文献

https://unstructured-io.github.io/unstructured/

static stage_elements(elements: List[Any], stage_type: Literal['convert_to_csv', 'convert_to_dataframe', 'convert_to_dict', 'dict_to_elements', 'stage_csv_for_prodigy', 'stage_for_prodigy', 'stage_for_baseplate', 'stage_for_datasaur', 'stage_for_label_box', 'stage_for_label_studio', 'stage_for_weaviate'], **kwargs) str | List[Dict] | Any[来源]#

根据指定的暂存类型,为不同平台暂存元素。

该函数应用多种数据暂存工具来格式化数据,以适应不同的NLP标注和机器学习工具。它使用'unstructured.staging'模块中的函数执行操作,如转换为CSV、DataFrame、字典,或为特定平台(如Prodigy等)格式化数据。

Parameters:
  • elements (List[Any]) – 需要暂存的元素对象列表。

  • (Literal['convert_to_csv' (stage_type) – 'convert_to_dict', 'dict_to_elements', 'stage_csv_for_prodigy', 'stage_for_prodigy', 'stage_for_baseplate', 'stage_for_datasaur', 'stage_for_label_box', 'stage_for_label_studio', 'stage_for_weaviate']): 要执行的暂存类型。

  • 'convert_to_dataframe' – ‘convert_to_dict’, ‘dict_to_elements’, ‘stage_csv_for_prodigy’, ‘stage_for_prodigy’, ‘stage_for_baseplate’, ‘stage_for_datasaur’, ‘stage_for_label_box’, ‘stage_for_label_studio’, ‘stage_for_weaviate’]): 要执行的暂存类型。

:param‘convert_to_dict’, ‘dict_to_elements’,

‘stage_csv_for_prodigy’, ‘stage_for_prodigy’, ‘stage_for_baseplate’, ‘stage_for_datasaur’, ‘stage_for_label_box’, ‘stage_for_label_studio’, ‘stage_for_weaviate’]): 要执行的暂存类型。

Parameters:

**kwargs – 特定于该暂存类型的额外关键字参数。

Returns:

暂存区中的数据

格式适合指定的暂存类型。

Return type:

Union[str, List[Dict], Any]

Raises:

ValueError - 如果暂存类型不受支持或缺少必需的参数。

参考文献

https://unstructured-io.github.io/unstructured/

camel.loaders.create_file(file: BytesIO, filename: str) 文件[来源]#

读取上传的文件并返回一个File对象。

Parameters:
  • file (BytesIO) – 表示文件内容的BytesIO对象。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件

camel.loaders.create_file_from_raw_bytes(raw_bytes: bytes, filename: str) 文件[来源]#

读取原始字节并返回一个File对象。

Parameters:
  • raw_bytes (bytes) – 文件的原始字节内容。

  • filename (str) – 文件名。

Returns:

一个文件对象。

Return type:

文件