iris-rag-gen:一款基于Iris的检索增强生成(RAG)应用
大家好!本文将介绍我的应用iris-rag-gen,这是一款利用iris矢量搜索功能的生成式ai检索增强生成(rag)应用。它结合了streamlit web框架、langchain和openai,能够个性化chatgpt的交互体验,并以iris作为矢量数据库。

核心功能:
- 文档导入(PDF/TXT): 将PDF或TXT文档导入Iris数据库。
- 智能问答: 基于已导入文档,与ChatGPT进行交互式问答。
- 文档删除: 删除已导入的文档。
- OpenAI ChatGPT集成: 直接使用OpenAI的ChatGPT模型。
文档导入流程:
- 输入OpenAI密钥。
- 选择PDF或TXT文档。
- 输入文档描述。
- 点击“导入文档”按钮。

导入过程会将文档信息存储到rag_documents表,并创建相应的矢量数据表(例如rag_document_id)。

文档导入核心代码片段:
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import PyPDFLoader, TextLoader
from langchain_iris import IrisVector
from langchain_openai import OpenAIEmbeddings
from sqlalchemy import create_engine, text
class RagOpr:
# ... (代码略,与原文相同) ...
矢量数据检索SQL语句示例:
SELECT TOP 5 id, embedding, document, metadata FROM sqluser.rag_document2

智能问答流程:
- 选择要查询的文档。
- 输入问题。
- 应用将检索矢量数据并返回答案。

智能问答核心代码片段:
from langchain_iris import IRISVector
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.chains import ConversationChain
from langchain.chains.conversation.memory import ConversationSummaryMemory
class RagOpr:
def ragSearch(self, prompt, id):
# ... (代码略,与原文相同) ...
更多详细信息,请访问iris-rag-gen项目页面。感谢您的阅读!










