grayhams74s/document-context-injection-gemini

GitHub: grayhams74s/document-context-injection-gemini

利用 LangChain 与 Google Gemini 将文档内容注入模型上下文,实现基于指定材料的文档问答助手。

Stars: 0 | Forks: 0

# 文档上下文注入 ## 项目概述 文档上下文注入是一个 Python 项目,旨在探索大型语言模型如何利用外部文档提供的信息来回答问题。该应用程序使用 LangChain 和 Google Gemini 创建了一个简单的具备文档感知能力的助手。该项目不再仅仅依赖模型的常规训练数据,而是在发送用户问题之前,将相关的文档文本直接放入模型的上下文中。这为助手提供了集中的信息来源,使其回答与所提供的材料更具相关性。 该项目展示了现代 AI 应用开发中的一个重要模式:在运行时向语言模型提供上下文信息。这种方法可用于构建内部知识助手、文档搜索工具、客户支持机器人、政策问答系统、学习助手、入职工具,以及其他用户需要基于特定文档集获取答案的应用程序。 当前的实现使用 `python-dotenv` 加载环境变量,通过 `langchain-google-genai` 初始化 Gemini 聊天模型,并构建包含文档上下文的 system prompt。该 system prompt 指示模型作为一个乐于助人的助手,根据提供的文档回答问题。随后,模型可以接收用户消息并生成具有上下文感知能力的响应。 该代码库特意保持轻量级,作为更高级文档 AI 工作流的基础。未来的改进可能包括:从 PDF、Word、Markdown 或文本文件中加载内容;将大型文档拆分为易于管理的块;仅为每个问题检索最相关的部分;添加聊天记录;显示来源;以及创建 Web 界面以提供更好的用户体验。 该项目还遵循了基本的开发实践,通过 `.env` 文件将 API 密钥保留在源代码之外,并使用 `.gitignore` 文件排除密钥、虚拟环境、缓存和构建产物。这使得该代码库在公开分享时更安全,也更容易让其他开发者在本地进行设置。 对于对 prompt 工程、LangChain、Gemini API、检索增强生成概念,以及构建使用私有或特定领域信息的 AI 应用感兴趣的开发者来说,文档上下文注入是一个实用的学习项目。 ## 设置 1. 创建并激活虚拟环境。 python -m venv .venv .\.venv\Scripts\Activate.ps1 2. 安装依赖项。 pip install -r requirements.txt 3. 创建一个包含您的 Google API 密钥的 `.env` 文件。 GOOGLE_API_KEY=your_api_key_here ## 运行 ``` python main.py ``` ## 工作原理 `main.py` 加载环境变量,将文档文本放入 system prompt 中,并初始化 `ChatGoogleGenerativeAI` 模型。将 `big_string` 占位符替换为提取的文档内容,然后使用用户问题调用模型。 ## 安全性 请仅将 API 密钥保留在 `.env` 中。包含的 `.gitignore` 可防止该文件以及常见的本地 Python 产物被提交。
标签:DLL 劫持, LangChain, 上下文注入, 人工智能, 大语言模型, 文档问答, 用户模式Hook绕过, 轻量级, 逆向工具, 问答系统