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绕过, 轻量级, 逆向工具, 问答系统