拓冰建站拓冰建站
首页 / 资讯中心 / 正文

LLMWare 端到端实战用例:用本地小型专用模型构建 RAG、语音、表格与合同分析流水线

LLMWare 端到端实战用例用本地小型专用模型构建 RAG、语音、表格与合同分析流水线【免费下载链接】llmwareUnified framework for building enterprise RAG pipelines with small, specialized models项目地址: https://gitcode.com/GitHub_Trending/ll/llmware本篇基于 LLMWare 官方的 Use Cases 指南逐一拆解 8 个端到端End-to-End实战场景研究自动化、发票批量处理、语音转写分析、MSA 合同审查、CSV 自然语言查询、笔记本合同分析、Office 文档深度解析与私有推理服务器。每个场景都对应 solutions/use_cases/ 目录下可直接运行的 Python 脚本读完本篇你将掌握解析 检索 小型专用模型推理 人机复核这一完整组合拳的搭建方法——所有场景均围绕本地运行的开源小模型展开官方称之为 Small, but Mighty无需依赖云端大模型即可在笔记本或单机 GPU 上落地。端到端用例的定位从 API 到完整业务配方LLMWare 的文档体系分为组件文档models、parsers、retrieval 等与解决方案示例两大类。solutions/use_cases/README.md 属于后者它不是单点 API 教程而是把多个组件按真实业务目标组合成完整配方例如解析一批发票 → 逐张提问 → 导出 CSV 供人工复核。README 明确指出这些示例仍然是高起点的框架starting point面向常见用例的进一步开发留白给读者。8 个场景清单如下序号场景核心组件组合对应脚本1公司与股票研究自动化slim 提取/摘要模型 3B 指令模型 YFinance/Wikipedia 网络服务web_services_slim_fx.py2发票批量处理解析 prompt_with_source批量问答无数据库invoice_processing.py3语音转写分析与引文提取语音解析 内存检索 slim-extract 推理parsing_great_speeches.py4MSA 主服务协议批量审查Library 文本检索过滤 事实核验msa_processing.py5CSV 自然语言查询Text2SQLCustomTable LLMfx Agentagent_with_custom_tables.py6笔记本合同分析GGUF 量化小模型 关键词检索策略contract_analysis_on_laptop_with_bling_models.py7Office 文档深度解析ZIP 解析 OCR 表格导出 数据集构建slicing_and_dicing_office_docs.py8私有推理服务器本地/CPU/GPU 推理服务 三种客户端接入模式见下文说明一个贯穿所有示例的公共依赖是样本文件机制Setup().load_sample_files() 会首次运行时从公网拉取并缓存样本文件发票、合同、语音、微软 IR 文件包等后续可直接换成自己的业务文档。场景一研究自动化——slim 模型 网络服务的多源情报聚合这个场景展示提取的键值可以反过来驱动外部数据源的级联思路先用本地模型从一份财报新闻稿中提取公司名、股票代码等关键字段再把这些字段作为参数去查询 YFinance 和 Wikipedia最后对二次来源再做一轮 LLM 提问最终产出一份约 30 个键值对的公司研究分析。完整实现见 web_services_slim_fx.py。模型组合脚本第 54–56 行model ModelCatalog().load_model(slim-extract-tool, temperature0.0, sampleFalse) model2 ModelCatalog().load_model(slim-summary-tool, sampleFalse, temperature0.0, max_output200) model3 ModelCatalog().load_model(bling-stablelm-3b-tool, sampleFalse, temperature0.0)三类模型各司其职slim-extract-tool负责结构化键值提取slim-summary-tool负责要点摘要限制max_output200控制长度bling-stablelm-3b-tool是 3B 参数的 RAG 指令模型负责基于上下文回答问题。四步流水线Step 1 提取查键对 7 个目标字段stock ticker、company name、total revenues、restructuring charges、digital growth、ceo comment、quarter end date逐一调用model.function_call(text, params[keys])。注意源码中键名会做keys.replace( , _)转换后与响应的下划线键做匹配失败时打印提示并跳过——这是处理 slim 模型提取不稳定的实用做法。Step 2 YFinance 查实时股票数据提取到的 ticker 先做ticker.split(:)[-1]清洗应对 NKE vs 带前缀格式然后调用 YFinance 的三个方法get_stock_summary现价、52 周高低、PE、成交量、get_financial_summary市值、营收增长、EBITDA、毛利率、币种、get_company_summary行业、官网、员工数、高管薪酬共写入 15 个字段。运行前需pip3 install yfinance脚本内置了importlib.util.find_spec检查并给出提示。Step 3 Wikipedia 二次来源用提取出的公司名调用 WikiParser 的add_wiki_topic(company_name, target_results1)拉取维基百科词条取前 3 个文本块作为company_overview再对其分别执行slim-summary 的 5 点摘要、slim-extract 提取founding date与company description以及用 3B 指令模型inference(question, add_contextcompany_overview)直接追问业务概况、公司名由来、产品线。Step 4 汇总输出research_summary字典按序打印全部键值对。该场景的可迁移模式是提取结果 → 外部 API 查键 → 二次来源再提问把本地小模型的轻量推理与实时网络数据结合而不需要任何云端 LLM。场景二发票批量处理——无数据库的解析 提问 人机复核invoice_processing.py 是最能体现端到端最小闭环的示例不需要数据库、不需要向量化把解析与prompt_with_source结合对一整批发票循环提问最后同时产出机器可读与人工可读两种报告。模型选择与 CPU/GPU 双模式脚本第 42–62 行if run_on_cpu: # bling-1b-0.1 最小最快但错误率较高bling-phi-3-gguf 量化版更准确 model_name bling-phi-3-gguf else: server_uri_string http://11.123.456.789:8088 # 填入你的服务器地址 server_secret_key demo-test ModelCatalog().setup_custom_llmware_inference_server(server_uri_string, secret_keyserver_secret_key) model_name llmware-inference-server prompter Prompt().load_model(model_name)run_on_cpuTrue时直接在笔记本上用 GGUF 量化模型为False时则通过 ModelCatalog.setup_custom_llmware_inference_server 把 Prompt 对象接入 GPU 推理服务器详见场景八。主循环的三步节奏对文件夹中每张发票、每个问题重复source prompter.add_source_document(invoices_path, invoice)—— 发票在内存中解析并挂载为源文档output prompter.prompt_with_source(question, prompt_namedefault_with_context)—— 携带源材料执行提问prompter.clear_source_materials()—— 清空源材料进入下一张发票。问题列表是简单三问发票总额、发票编号、双方名称query_list。双格式输出是本例的关键价值点脚本第 86–94 行prompter.save_state() # 完整交互历史 → /prompt_history 下的 .jsonl csv_output HumanInTheLoop(prompter).export_current_interaction_to_csv() # 人审 CSVsave_state()把整条 Prompt 事务历史含模型、提示、响应、证据落盘为 JSONL便于上游系统或数据库二次消费HumanInTheLoop 的export_current_interaction_to_csv()则导出带模型 / 提示 / 响应 / 证据列的 CSV可直接在 Excel 中做人工复核。发票样本首次运行会从公开仓库自动下载也可替换成自己的 PDF/DOCX/PPTX/XLSX/CSV/TXT 文件。场景三语音转写分析——从 50 演讲 WAV 到带时间戳的书目parsing_great_speeches.py 演示语音管线的内存态处理转写 50 多个 20 世纪著名演讲的 WAV 文件对转写文本跑检索再用 LLM 推理筛选出关键内容最终生成含源文件、时间戳与原文的引文清单bibliography。关键调用链voice_sample_files Setup().load_voice_sample_files(small_onlyFalse) # 样本集共 4 组famous_quotes | greatest_speeches | youtube_demos | earnings_calls parser_output Parser(chunk_size400, max_chunk_size600).parse_voice( input_folder, write_to_dbFalse, copy_to_libraryFalse, remove_segment_markersTrue, chunk_by_segmentTrue, real_time_progressFalse)parse_voice全程内存操作write_to_dbFalse, copy_to_libraryFalsechunk_by_segmentTrue按语音分段切块remove_segment_markersTrue去掉分段标记每个解析块携带coords_x / coords_y / coords_cx / coords_y坐标元数据其中横向坐标即时间轴位置这正是后面输出时间戳的依据。随后Utilities().fast_search_dicts(president, parser_output)对内存块列表做快速文本检索加载slim-extract-tooltemperature0.0, max_output200对每条命中块执行function_call(res[text], params[president name])提取总统姓名再与一个预设名单kennedy、carter、nixon、reagan、clinton、obama做包含匹配命中的记录写入{key, source, time_start, text}结构——即最终书目每条引文都能回溯到具体文件、时间点与原文。这个模式可直接迁移到会议纪要按人物定位关键发言、播客/财报电话会要点提取等场景。场景四MSA 合同批量审查——检索过滤 证据核验 CSV 归档msa_processing.py 处理约 80 份合同的批次任务先在一批混合合同中定位Master Services Agreement再在每份 MSA 中找出终止条款termination provisions让本地 6B 量化模型回答关键问题并做事实核验fact-check与来源核验source-check最后全部存 CSV/JSON 供复核。注释中说明它对应官方 Fast Start 教程的第 6 例。第一步建库并按首页过滤出 MSA脚本第 24–37 行msa_lib Library().create_new_library(msa_lib503_635) msa_lib.add_files(agreements_path) # 批量解析 ~80 份合同 q Query(msa_lib) results q.text_search_by_page(master services agreement, page_num1, results_onlyFalse) msa_docs results[file_source]text_search_by_page(query, page_num1)是按页码定位的检索方式——只在每份文档第 1 页上搜标题词这是识别合同类型的高性价比策略。results_onlyFalse返回含{query, results, doc_ID, file_source}四个键的字典这里取file_source得到 MSA 文件名列表。第二步逐份 MSA 提取终止条款并提问脚本第 44–70 行model_name llmware/dragon-yi-6b-gguf # 本地量化 6B 模型 prompter Prompt().load_model(model_name) doc_filter {file_source: [docs]} termination_provisions q.text_query_with_document_filter(termination, doc_filter) prompter.add_source_query_results(termination_provisions) response prompter.prompt_with_source(What is the notice for termination for convenience?)第三步证据与来源双核验stats prompter.evidence_comparison_stats(response) # 响应与证据的比对统计 ev_source prompter.evidence_check_sources(response) # 来源级复核这两个方法见 Prompt 实现分别输出comparison_stats与source_review用于检查 LLM 回答是否有源材料支撑——在合同审查这类合规敏感场景里这是把模型回答变成可审计结论的关键环节。结尾同样用save_state()export_current_interaction_to_csv()落盘 JSONL 与 CSV 双格式报告。场景五用自然语言查询 CSV——CustomTable LLMfx Text2SQLagent_with_custom_tables.py 展示了把 CSV 变成可对话数据表的完整配方官方注释指出它是早期text2sql-end-to-end-2.py的泛化升级版改用集成进 LLMfx 流程的CustomTable类同时支持 Postgres 与 SQLite。建表阶段build_table函数custom_table CustomTable(dbdb, table_nametable_name) analysis custom_table.validate_csv(load_fp, load_file) # 先做文件分析 output custom_table.load_csv(load_fp, load_file) # 或 load_json.json/.jsonl updated_schema custom_table.test_and_remediate_schema(samples20, auto_remediateTrue) custom_table.insert_rows()validate_csv先给出文件级分析test_and_remediate_schema(samples20, auto_remediateTrue)用更多样本压测并自动修复数据类型推断——注释特别提示样本越多schema 推断越准。示例 CSV 即仓库内的customer_table.csvsolutions/sources/customer_table.csv。查询阶段agent_natural_language_sql_query函数agent LLMfx() agent.load_tool(sql, sampleFalse, get_logitsTrue, temperature0.0) response agent.query_custom_table(query, dbdb, tabletable_name)LLMfx 的query_custom_table内部完成整条 Text2SQL 链路按table_name从数据库查表结构 → 把 schema 与问题打包成 text-2-sql 提示 → 推理生成 SQL → 在数据库上执行 → 结果写入agent.research_list。示例查询列表包含 5 个典型问题VIP 客户筛选、最高年消费、按账号查找、最低年消费、个人属性判断注释也坦诚说明这些查询刻意选择了与 schema 对齐清晰、相对直白的问题——替换成真实复杂查询时需要评估生成 SQL 的准确率。场景六笔记本合同分析——GGUF 量化模型 关键词检索策略contract_analysis_on_laptop_with_bling_models.py 的定位很明确run entirely on a laptop——完全在笔记本上用 Bling-Phi-3RAG 微调的 GGUF 量化小模型完成高管雇佣协议批量分析。其检索策略值得注意脚本第 40–41 行source prompter.add_source_document(contracts_path, contract, querykey) responses prompter.prompt_with_source(value, prompt_namedefault_with_context)add_source_document携带querykey参数文档先被解析、文本分块然后用关键词如 base salary、vacation过滤出相关块再挂载为源——这是一种简单但有效的关键词检索策略避免把整份合同塞进提示窗口。问题集为三问双方名称、基本工资、年假天数。处理流程与发票场景同构逐份合同 → 逐题提问 →clear_source_materials()清理 → 最后save_state()与HumanInTheLoopCSV 导出。模型名bling-phi-3-gguf通过 ModelCatalog 的Prompt().load_model(model_name, temperature0.0, sampleFalse)加载。场景七Office 文档切块解剖——ZIP 解析、OCR、表格导出与数据集构建slicing_and_dicing_office_docs.py 基于样本文件中的微软投资者关系文件包2020 年以来各季度的 ZIP 归档内含约 150 份 PowerPoint/Word/Excel演示一整套深度解析技术。建库阶段ZIP 归档和普通文件一样直接传给add_files内部会自动解压并把每个文件路由到对应解析器parsing_output my_lib.add_files(microsoft_ir, chunk_size400, max_chunk_size600, smart_chunking1, get_tablesTrue, get_imagesTrue)get_tablesTrue, get_imagesTrue让解析器在分块的同时抽取表格与图片抽取出的图片路径可通过my_lib.image_path查看随后用Query(my_lib).text_query(azure, result_count10)验证检索可用。切片解剖五步slice_and_dice_special函数表格导出 CSVQuery(lib).export_all_tables(output_fplib.output_path)把数据库索引中的全部表格导出为独立 .CSV 文件图片批量 OCRlib.run_ocr_on_images(add_to_libraryTrue, chunk_size400, min_size10, realtime_progressTrue)对所有抽取图片跑 OCR并把识别文本加回库依赖pytesseract与libtesseract脚本注释给出了 macOS/Linux/Windows 三种安装方式整库导出 JSONLlib.export_library_to_jsonl_file(lib.output_path, microsoft_ir_lib)构建模型就绪数据集Datasets(librarylib, testing_split0.10, validation_split0.10, ds_id_moderandom_number)后build_text_ds(min_tokens100, max_tokens500)产出带训练/验证切分的文本数据集脚本开头用LLMWareConfig().set_active_db(sqlite)选定集合数据库可选 mongo、sqlite、postgres。场景八LLMWare 私有推理服务器README 第 8 项描述了一个可在 CPU、GPU 或本地几分钟内搭建的推理服务器llmware_inference_server.py与三种客户端接入模式llmware_inference_api_client.py。需要说明的是这两个脚本未包含在当前仓库快照中README 中的外链指向旧版仓库路径与现目录结构不一致但服务器接入的 API 入口是真实存在的——invoice_processing.py 中的用法即官方示范ModelCatalog().setup_custom_llmware_inference_server(server_uri_string, secret_keyserver_secret_key) model_name llmware-inference-server即向 ModelCatalog 注册服务器 URI 与密钥后把llmware-inference-server当作普通模型名传给Prompt().load_model()即可上层代码对本地模型还是远端服务器完全无感。更完整的服务器组件说明见 私有推理服务器文档。其价值定位引用 README支持快速开发、测试与原型验证并提供灵活的部署模型覆盖广泛的 RAG 与 Agent 用例。贯穿全部场景的通用模式把 8 个示例放在一起看可以提炼出 LLMWare 端到端用例的四条共性模式写自己的业务脚本时可直接套用样本文件即起点所有示例都以Setup().load_sample_files()或load_voice_sample_files、load_selected_sample_files为入口首次运行自动下载缓存替换成自己的文件即可投产。解析 → 检索过滤 → 提问的三段式无论是发票add_source_document内存解析、合同query关键词过滤、MSAtext_query_with_document_filter还是语音内存fast_search_dicts核心都是先缩小证据范围再交给小模型回答而非全文投喂。人机复核Human-in-the-Loop是标配出口Prompt().save_state()落盘 JSONL 事务历史 HumanInTheLoop(prompter).export_current_interaction_to_csv()导出 CSV这一组合在发票、MSA、合同三个文档类示例中完全一致是 LLMWare 面向生产场景的审计设计。模型名即部署形态bling-phi-3-gguf、llmware/dragon-yi-6b-gguf等 GGUF 量化模型可直接在 CPU/笔记本运行接入推理服务器后统一用llmware-inference-server模型名同一份业务代码横跨 CPU 与 GPU 环境。此外solutions/use_cases/ 目录下还有 README 未收录的扩展脚本如 biz_bot.py业务机器人与 using-llm-for-table-reading.pyLLM 读表以及 lecture_tool/ 下的多页面讲义管理应用可作为上述配方的进一步参考。【免费下载链接】llmwareUnified framework for building enterprise RAG pipelines with small, specialized models项目地址: https://gitcode.com/GitHub_Trending/ll/llmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门