项目介绍:Ask my PDF
Ask my PDF 是一款建立在 GPT-3 之上的问答系统,主要用于帮助用户解答关于桌游规则的问题。尽管该应用程序也能用于其他任务,但重点在于桌游规则方面,这对创造者本人来说尤为重要,因为他是桌游的忠实爱好者。此外,使用该应用解答规则问题即使出现模型“幻觉”也相对无害。
访问方式
用户可以在 Streamlit 社区云平台上访问 Ask my PDF。需要注意的是,使用该应用程序时用户需提供自己的 OpenAI API 密钥。
应用的学术背景
Ask my PDF 实现了两个重要的学术论文成果:
- In-Context Retrieval-Augmented Language Models (简称 RALM)
- Precise Zero-Shot Dense Retrieval without Relevance Labels (简称 HyDE,即 Hypothetical Document Embeddings)
安装步骤
如果您希望将该应用程序安装到本地,请按以下步骤操作:
-
克隆代码仓库:
git clone https://github.com/mobarski/ask-my-pdf
-
安装依赖:
pip install -r ask-my-pdf/requirements.txt
-
运行应用:
cd ask-my-pdf/src run.sh 或 run.bat
高级文档
RALM + HyDE
这是一张展示 RALM 和 HyDE 如何协作的示意图:
RALM + HyDE + context
该图展示了 RALM 和 HyDE 在上下文的帮助下如何运作:
应用的环境变量配置
该应用的配置信息通过环境变量来设置,下面是相关变量的简单说明:
通用配置:
- STORAGE_SALT:用于从 API 密钥派生用户/文件夹名称及加密密钥的加密盐。
- STORAGE_MODE:索引存储模式,可选择 S3、LOCAL 或 DICT(默认)。
- STATS_MODE:使用统计存储模式,可选择 REDIS 或 DICT(默认)。
- FEEDBACK_MODE:用户反馈存储模式,可选择 REDIS 或 NONE(默认)。
- CACHE_MODE:嵌入缓存模式,可选择 S3、DISK 或 NONE(默认)。
本地文件系统配置(存储/缓存):
- STORAGE_PATH:索引存储的目录路径。
- CACHE_PATH:嵌入缓存的目录路径。
S3 配置(存储/缓存):
- S3_REGION:区域代码。
- S3_BUCKET:存储桶名称。
- S3_SECRET:秘密密钥。
- S3_KEY:访问密钥。
- S3_URL:URL。
- S3_PREFIX:对象名称前缀。
- S3_CACHE_BUCKET:缓存使用的存储桶名称。
- S3_CACHE_PREFIX:缓存的对象名称前缀。
Redis 配置(用于持久化使用统计数据/用户反馈):
- REDIS_URL:Redis 数据库 URL。
社区版本的相关选项:
- OPENAI_KEY:默认用户的 API 密钥。
- COMMUNITY_DAILY_USD:默认用户的每日预算。
- COMMUNITY_USER:默认用户代码。