公司动态
LiteLLM 3步批量文本提取:从PDF到成本监控的完整链路
LiteLLM 3步批量文本提取从PDF到成本监控的完整链路【免费下载链接】litellmThe fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]项目地址: https://gitcode.com/GitHub_Trending/li/litellm几百份PDF报告要人工读排期能拖到下周。LiteLLM 用统一的 OpenAI 格式接入 100 LLM API把批量文本提取与分析压缩成 3 步代码Bedrock、Azure、OpenAI 都不用再各写一套适配。环境就绪克隆仓库与一条安装命令我们只需要两条命令就能装好 SDK代理服务器包含在同一个包内git clone https://gitcode.com/GitHub_Trending/li/litellm cd litellm pip install -e .三步跑通提取管道第1步从PDF抽出纯文本import pypdf reader pypdf.PdfReader(quarterly_report.pdf) text \n.join(p.extract_text() or for p in reader.pages) # 逐页抽取第2步把长文本切成块# 源码参考: litellm/rag/text_splitters/recursive_character_text_splitter.py from litellm.rag.text_splitters.recursive_character_text_splitter import RecursiveCharacterTextSplitter splitter RecursiveCharacterTextSplitter(chunk_size1500, chunk_overlap100) chunks splitter.split_text(text) # 按段落→换行→空格逐级切分切块逻辑不是硬截断而是先按\n\n、再按\n递归拆分尽量保留语义边界。第3步批量LLM分析并记账import litellm out, total [], 0.0 for c in chunks: r litellm.completion( modelgpt-4o-mini, messages[{role: user, content: f提取关键事实与实体: {c}}], ) out.append(r.choices[0].message.content) total litellm.completion_cost(r) # 源码参考: litellm/cost_calculator.py print(f共{len(out)}块, 本次花费 {total})到这一步单进程链路已经可用抽取 → 切块 → 分析 → 拿到每块结果和总花费。上量从串行循环到代理并发循环跑 10 万块你会遇到两个问题速度以及中途想换模型要改代码。把路由交给代理参考仓库里的 proxy_server_config.yamlmodel_list里每个条目注册一个模型api_key字段支持os.environ/前缀从环境变量读取配置文件不落明文密钥。每个模型还能单独配rpm、timeout示例里是 480 rpm、300s 超时限流和熔断都有入口。启动后管理面板按请求记录审计日志谁在调哪个模型、花了多少钱逐条可查两个可直接取用的并发能力batch_completion接口默认max_workers100线程池见litellm/batch_completion/main.py代理层多模型负载均衡换供应商只改配置前缀openai/、bedrock/业务代码不动。接上Langfuse每个请求的token与成本可见在配置的litellm_settings里加一行success_callback: [langfuse]结构与 proxy_server_config.yaml 相同再设 Langfuse 的环境变量密钥即可。看板上能追踪单请求耗时、输入/输出 token 数、花费、失败原因。文本分析这种量大、单价低的任务靠的就是这类指标发现异常 chunk 的重复请求。需要更细的调用链span、自定义属性时可切换到 OpenTelemetry实现位于 litellm/integrations/otel/。⚠️ 避坑清单抽取文本为空 → 多为扫描版 PDF改走 OCR 摄入路径见 litellm/rag/ingestion/ 下的 vertex_ai、gemini 摄入器chunk_size 超出模型上下文窗口 → 块字数控制在窗口余量内8k token 级模型按 2000 字符起估密钥明文写进配置 → 一律用os.environ/前缀引用环境变量切块处语义断裂 →chunk_overlap设为 chunk_size 的 5%–10%没设预算批量任务花费失控 → 用completion_cost逐请求累加代理层配置max_budget硬上限换供应商要改业务代码 → 模型前缀写在配置里调用方只认 model_name 今日行动清单跑通上面三步管道先用一份真实 PDF 验证切块数量与总花费。照 proxy_server_config.yaml 写一份自己的代理配置启动后到审计日志里核对每条请求。接入 langfuse 回调确认 token 与成本指标入库再放量。【免费下载链接】litellmThe fastest, litest AI Gateway. Rust core with Python SDK. Call 100 LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]项目地址: https://gitcode.com/GitHub_Trending/li/litellm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考