如何用 GroundX 与本地 Ollama 在 ai-engineering-hub 处理含表格和图形的复杂文档并问答?

发布时间:2026/9/11 7:24:58
如何用 GroundX 与本地 Ollama 在 ai-engineering-hub 处理含表格和图形的复杂文档并问答? 如何用 GroundX 与本地 Ollama 在 ai-engineering-hub 处理含表格和图形的复杂文档并问答【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub在 ai-engineering-hub 的groundX-doc-pipeline项目中目标是搭一条文档处理流水线把含表格、图形和密集文本的复杂文档交给 Ground X 做解析与 X-Ray 分析再用本地 Ollama 服务的大模型对文档内容进行问答。整条链路是Streamlit 界面上传文档 → Ground X 云端解析出结构化数据 → 在多个 Tab 中查看提取文本、摘要、关键词等结果 → 在聊天界面直接向文档提问回答由本地phi3:mini模型生成。适用的前提是系统装有 Python 3.8.1 或更高版本你有一个 GroundX API Key并能本地运行 Ollama。准备环境依赖、API Key 与本地模型在 groundX-doc-pipeline 目录下依次完成三步。安装依赖。项目使用uv管理依赖在目录内执行uv syncpyproject.toml 声明了requires-python 3.8.1核心依赖包括streamlit1.28.0、groundx0.1.0、python-dotenv、requests、PyMuPDF等。配置 GroundX API Key。把.env.example复制为.env按 README 的说明写入GROUNDX_API_KEYyour_groundx_api_key_here其中your_groundx_api_key_here是占位写法替换为你自己的 GroundX API Key。仓库中的 .env.example 还包含OPENAI_API_KEY和COMET_API_KEY两项它们是评测脚本run_evaluation_cli.py使用的跑通文档处理 问答这条主链路时不需要配置。启动本地 Ollama 并拉取模型。应用固定调用phi3:mini所以模型名必须一致# 安装 Ollama 后拉取所需模型 ollama pull phi3:mini # 启动 Ollama 服务 ollama serve启动 Streamlit 应用在groundX-doc-pipeline目录下运行streamlit run app.py启动后 app.py 会做两件准备工作通过 groundx_utils.py 中的create_client()初始化 Ground X 客户端若读不到 Key页面会直接报No GROUNDX_API_KEY found in secrets, .env, or environment.再用ensure_bucket()确保名为gx_demo的存储桶存在不存在则自动创建。如果桶里已经存在应用默认查找的文档页面会自动加载它的 X-Ray 数据并在侧边栏显示Auto-loaded此时可直接跳到底部用 Chat Tab 提问。上传复杂文档并查看 X-Ray 解析结果在页面侧边栏的 Choose a document 处上传文件。根据 README 和 app.py 中的上传控件支持 PDF、PNG、JPG、JPEG、DOCX 五类文件正好覆盖含表格和图形的复杂文档这一场景。仓库的file/目录下提供了file/electricity.pdf和file/energy-plus.pdf两个示例 PDF可作为验证解析效果的练习文档它们同时也被评测脚本run_evaluation_cli.py用作输入。上传后应用进入处理流程侧边状态区会依次显示上传到 Ground X、处理中、拉取 X-Ray 数据的进度源码中通过轮询process_id的 processing status 直到状态变为complete最长等待 600 秒。处理成功时页面显示Document parsed successfully! Explore the results below.如果同名文件已在桶里则显示Used existing file in bucket并直接复用已有解析结果。解析完成后页面顶部会展示文档指标File Type、Language、Pages、Keywords下方是六个结果 TabJSON Output原始 X-Ray 分析数据Narrative Summary从文档各页 chunks 中提取的叙述性文本File Summary文档整体概述Suggested TextAI 建议的内容Extracted Text按页拼接的原始提取文本Keywords文档关键词列表。对含表格、图形的文档建议重点核对 Extracted Text 与 JSON Output 两个 Tab判断表格文字和图注是否被正确抽取出来。用本地 Ollama 对文档问答切到Chat页签在输入框输入问题即可。app.py 中prepare_chat_context()会先从 X-Ray 数据组装上下文fileSummary全文加上前 2 页、每页前 3 个 chunks每个 chunk 截取前 500 字符的提取文本再附上fileType和language元数据。generate_chat_response()则向本地 Ollama 的http://localhost:11434/api/generate发起请求参数固定为{ model: phi3:mini, stream: false, options: { temperature: 0.3, top_p: 0.9, num_predict: 300, top_k: 10, repeat_penalty: 1.1 } }提示词中要求模型直接、简洁地回答且在信息不足时回复I dont have enough information to answer that question。因此如果某个问题涉及文档第 3 页之后的内容模型可能因上下文中根本没有那些内容而回答信息不足——这是上下文组装逻辑的既定边界不是故障。验证结果与常见报错跑通整条链路的判断依据来自界面本身给出的状态文本处理成功显示Document parsed successfully或Analysis complete!并能打开六个结果 Tab解析失败显示Error processing document: ...。groundx_utils.py 中定义了两类具体错误轮询超过 600 秒抛出Ground X ingest timed out.ingest 以error或cancelled结束时抛出Ingest finished with status: ...问答失败聊天区返回Im having trouble accessing the AI model right now. Status: ...或Error: ...说明请求localhost:11434失败或状态码非 200先确认ollama serve在运行、phi3:mini已拉取完成。侧边栏还提供Re-process File与Clear Analysis按钮用于强制重新处理或清空本次会话的分析状态。边界与限制问答的上下文只覆盖文档前 2 页的前 3 个 chunks且单个 chunk 截断到 500 字符长文档后段的细节问答不在该上下文设计范围内。num_predict固定为 300回答长度受此上限约束。项目还包含基于 Opik GEval 的评测工具evaluation_geval.py、run_evaluation_cli.py它需要OPENAI_API_KEY和COMET_API_KEY属于独立于问答链路之外的对比评测任务本文不展开。若需要把该 Streamlit 服务托管到云端server.py 给出了基于 Beam 的部署入口配置了 8501 端口、4 CPU、2Gi 内存可作为部署参考。【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考