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),仅供参考

相关新闻

最新新闻

腾讯研发笔试核心考点拆解:从C++内存布局到算法基础

腾讯研发笔试核心考点拆解:从C++内存布局到算法基础

这套题放在今天来看,考点依然非常“经典”:C对象内存布局、排序算法稳定性、进程线程区别、TCP握手状态、链表操作、动态规划……几乎每个大厂笔试都会换着花样考。但腾讯这套题有个特点,它不追求偏题怪题,而是把所有研发工程师“…

2026/8/30 16:08:46
模型训练 不同批次大小与学习率下的训练损失对比(3)

模型训练 不同批次大小与学习率下的训练损失对比(3)

模型训练 不同批次大小与学习率下的训练损失对比(3) 以 ConvNeXt 为例 论文中的一些做法 flyfish 一、ImageNet-1K 从头全量训练(300 epochs) 原文We train ConvNeXts for 300 epochs using AdamW [46] with a learning rate of 4…

2026/8/30 16:08:46
优化建图(详解)

优化建图(详解)

1. 引言建图是机器人自主导航中的关键环节,地图质量直接影响后续定位、路径规划与避障效果。本文围绕建图流程中的常见问题,介绍如何从传感器配置、算法参数与工程实践三个层面系统性地优化建图效果。2. 传感器与数据质量优化建图效果的上限取决于输入数…

2026/8/30 16:08:46
视频转文字实战:从视频提取音频到带时间戳字幕稿,聊聊ASR语音识别的门道

视频转文字实战:从视频提取音频到带时间戳字幕稿,聊聊ASR语音识别的门道

上个月我接了个活儿:把一期将近两小时的访谈视频整理成文字稿,还要顺手出一版字幕。要是搁以前,我肯定一边看一边手动敲,敲到眼冒金星。后来想想,我平时折腾音频降噪、人声分离那套经验,不就是跟「声音里的…

2026/8/30 16:08:46
Flume架构深度拆解:Source、Channel、Sink三大组件的职责边界与数据流模型

Flume架构深度拆解:Source、Channel、Sink三大组件的职责边界与数据流模型

Flume架构深度拆解:Source、Channel、Sink三大组件的职责边界与数据流模型Flume作为Apache顶级的日志采集工具,以其高可靠、高可扩展的特性在大数据生态系统中扮演着至关重要的角色。本文将深入剖析Flume架构的三大核心组件——Source、Channel、Sink&am…

2026/8/30 16:08:46
语音代理的“内心独白”:用状态管理根治多轮对话失忆

语音代理的“内心独白”:用状态管理根治多轮对话失忆

你正在和一个 voice agent 处理一个稍微复杂一点的请求,比如“帮我订明天下午三点从上海到北京的高铁,尽量靠窗,如果没票就改下午四点”。前半段它听得很好,也报出了车次。等你说完支付方式,它突然问:“请问…

2026/8/30 16:03:46