[控场AI]
产品LangExtract

LangExtract

Google 推出的 Python 库,用于从长文本中抽取结构化实体,抽取结果映射回源文本字符位置,支持自动分块、调用模型与JSON解析对齐

时间轴 (近 90 天)

10月19日

LangExtract 是 Google 开发的 Python 库,能从长文本中抽取结构化实体,并将每个抽取结果映射回源文本中的字符位置。

待验证50%
10月19日

LangExtract 的默认后端是 Gemini,但它内置了基于官方 OpenAI SDK 的 provider,理论上可对接 vLLM、LiteLLM 或任何托管网关。

待验证50%
10月19日

LangExtract 的 provider 路由基于 model_id 的正则匹配:只有以 gpt-3.5、gpt-4、gpt-5 或 o1 到 o9 开头的名字才会走 OpenAI provider。

待验证50%
10月19日

在 langextract 1.7.1 中,以 qwen、deepseek、llama、mistral、gemma、phi、gpt-oss 等开头的 model_id 会被导向 Ollama provider,即使传入了 model_url。

待验证50%
10月19日

实测中,model_id 为 qwen3-coder-plus 时 LangExtract 向 <base_url>/v1/api/generate 发 POST 并返回找不到 Ollama 模型的错误;完全不匹配任何模式的 plain-model 报错 No provider registered for model_id。

待验证50%
10月19日

LangExtract 只有在模型 ID 包含 gpt 时才会读取环境变量 OPENAI_API_KEY;当 provider 被显式指定而模型名不含 gpt 时,必须显式传入 api_key,否则报 API key not provided。

待验证50%
10月19日

LangExtract 在不传 base_url 时会读取环境变量 OPENAI_BASE_URL,且无论哪种方式 base_url 末尾都要保留 /v1。

待验证50%
10月19日

LangExtract 的每个文本块请求包含一条 system message(要求以 JSON 回复)、一条包含 prompt、Q:/A: 示例及块文本的 user message、n: 1,以及名为 langextract_extractions 且带 strict: true 的 json_schema 类型 response_format。

待验证50%
10月19日

LangExtract 默认请求中既没有 temperature 也没有 max_tokens,完全由服务端默认值接管;在 provider_kwargs 中显式设置后请求会带上对应参数。

待验证50%
10月19日

当服务端对 json_schema 返回 400 时,LangExtract 的 extract() 会抛出 InferenceRuntimeError: OpenAI API error: Error code: 400。

待验证50%

还有 4 条时间轴事件

全部知识事实 (14)

待验证

本文基于 langextract 1.7.1、openai 3.35.1、Python 3.13 的实测环境,且作者声明自己开发了示例中的网关 APIClaw,对网关相关观点需带保留。

50%
待验证

LangExtract 的默认后端是 Gemini,但它内置了基于官方 OpenAI SDK 的 provider,理论上可对接 vLLM、LiteLLM 或任何托管网关。

50%
待验证

LangExtract 的 provider 路由基于 model_id 的正则匹配:只有以 gpt-3.5、gpt-4、gpt-5 或 o1 到 o9 开头的名字才会走 OpenAI provider。

50%
待验证

在 langextract 1.7.1 中,以 qwen、deepseek、llama、mistral、gemma、phi、gpt-oss 等开头的 model_id 会被导向 Ollama provider,即使传入了 model_url。

50%
待验证

LangExtract 是 Google 开发的 Python 库,能从长文本中抽取结构化实体,并将每个抽取结果映射回源文本中的字符位置。

50%
待验证

LangExtract 只有在模型 ID 包含 gpt 时才会读取环境变量 OPENAI_API_KEY;当 provider 被显式指定而模型名不含 gpt 时,必须显式传入 api_key,否则报 API key not provided。

50%
待验证

LangExtract 在不传 base_url 时会读取环境变量 OPENAI_BASE_URL,且无论哪种方式 base_url 末尾都要保留 /v1。

50%
待验证

LangExtract 的每个文本块请求包含一条 system message(要求以 JSON 回复)、一条包含 prompt、Q:/A: 示例及块文本的 user message、n: 1,以及名为 langextract_extractions 且带 strict: true 的 json_schema 类型 response_format。

50%
待验证

LangExtract 默认请求中既没有 temperature 也没有 max_tokens,完全由服务端默认值接管;在 provider_kwargs 中显式设置后请求会带上对应参数。

50%
待验证

当服务端对 json_schema 返回 400 时,LangExtract 的 extract() 会抛出 InferenceRuntimeError: OpenAI API error: Error code: 400。

50%
待验证

设置 use_schema_constraints=False 后,LangExtract 请求会切换为 response_format: {"type": "json_object"},可绕开服务端不支持 json_schema 的问题。

50%
待验证

LangExtract 默认会静默吞掉每个块的解析错误:当模型输出被解释文字和围栏包裹,或因 finish_reason 为 length 被截断导致 JSON 解析失败时,该块被丢弃、仅打印日志,返回零条抽取结果且不抛异常。

50%
待验证

在 json_object 模式下,LangExtract 期望裸 JSON,若模型返回带解释文字和围栏的 JSON 块则会被丢弃,日志为 Chunk omitted from results (parse error): Failed to parse JSON content。

50%
待验证

实测中,model_id 为 qwen3-coder-plus 时 LangExtract 向 <base_url>/v1/api/generate 发 POST 并返回找不到 Ollama 模型的错误;完全不匹配任何模式的 plain-model 报错 No provider registered for model_id。

50%

来源文章