当前位置: 首页 > wzjs >正文

微信扫码抢红包网站做网站建设公司(深圳信科)

微信扫码抢红包网站做,网站建设公司(深圳信科),个人网站开发工具,做网站的框架组合1. 环境准备 安装必要的库 pip install langchain psycopg2-binary pgvector langchain-openai安装并配置 PostgreSQL 安装 PostgreSQL 确保 PostgreSQL 已正确安装并运行。你可以根据操作系统的不同参考官方文档进行安装。 创建数据库 创建一个新的数据库(例如 …

1. 环境准备

安装必要的库

pip install langchain psycopg2-binary pgvector langchain-openai

安装并配置 PostgreSQL

  1. 安装 PostgreSQL
    确保 PostgreSQL 已正确安装并运行。你可以根据操作系统的不同参考官方文档进行安装。

  2. 创建数据库
    创建一个新的数据库(例如 rag_db),用于存储向量数据:

    CREATE DATABASE rag_db;
    
  3. 启用 pgvector 扩展
    编译安装扩展:

    • Linux & Mac
      cd /tmp
      git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
      cd pgvector
      make
      make install # may need sudo
      
    • Windows
      需要先安装好 Microsoft Visual Studio 2022 以及 C++ 桌面开发的相关组件。在Visual Studio 2022的开发终端中执行以下命令:
      set "PGROOT=C:\Program Files\PostgreSQL\16"
      cd %TEMP%
      git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
      cd pgvector
      nmake /F Makefile.win
      nmake /F Makefile.win install
      

    在数据库中启用 pgvector 扩展,它提供了高效的向量操作功能:

    CREATE EXTENSION vector;
    
  4. 配置数据库连接
    确保你已获取 PostgreSQL 数据库的连接信息,包括用户名、密码、主机地址和端口。

获取 OpenAI API 密钥

  1. 在 OpenAI 官网 注册并获取 API 密钥,或者使用类似openai输入输出格式的第三方服务。

  2. 将密钥设置为环境变量 OPENAI_API_KEY,例如:

    import os
    os.environ["OPENAI_API_KEY"] = 'your_api_key'
    

2. 创建向量数据库

连接 PostgreSQL 数据库

首先,连接到 PostgreSQL 数据库,初始化数据库连接:

import psycopg2
from langchain_community.vectorstores import PGVector
from langchain_openai import OpenAIEmbeddings# 数据库连接字符串
CONNECTION_STRING = "postgresql://user:password@host:port/rag_db"# 创建数据库连接
conn = psycopg2.connect(CONNECTION_STRING)

创建向量存储

接下来,使用 OpenAIEmbeddings 来初始化嵌入模型,并使用 PGVector 来创建向量存储:

# 初始化 OpenAI 嵌入模型
embeddings = OpenAIEmbeddings()# 创建 PGVector 向量存储
vector_store = PGVector(embedding_function=embeddings,connection_string=CONNECTION_STRING,collection_name="my_documents",  # 向量存储名称use_jsonb=True  # 启用 JSONB 格式来存储向量数据
)

添加文档到向量存储

我们将文档加载、分割并添加到向量存储中:

from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter# 加载文档
loader = TextLoader("your_document.txt")
documents = loader.load()# 文本分割
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)# 将文档添加到向量存储
vector_store.add_documents(texts)

注意: 替换 "your_document.txt" 为你实际的文档路径。


3. 实现 RAG 搜索

创建检索器

首先,创建一个从向量存储中检索文档的检索器:

# 创建检索器
retriever = vector_store.as_retriever()

创建 RAG 链

使用 ChatOpenAI 初始化 OpenAI LLM,然后创建一个 RAG 链来执行查询:

from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI# 创建 OpenAI LLM
llm = ChatOpenAI()# 创建 RAG 链
qa_chain = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever)

执行搜索

执行检索并生成答案:

# 执行搜索
query = "What is the main topic of the document?"
result = qa_chain.run(query)print(result)

4. 进一步优化

4.1 调整嵌入参数

你可以根据文档的具体内容和查询的复杂度,调整 chunk_sizechunk_overlap 参数。例如,如果文档较长,可以增大 chunk_size,或者减少 chunk_overlap 以避免重复信息。

4.2 使用不同的 LLM

除了 ChatOpenAI,你还可以尝试使用其他 LLM(如 gpt-3.5-turbogpt-4),或者选择其他的开源模型来替代 OpenAI。

4.3 分布式处理

当文档量较大时,建议将数据库配置为支持分布式处理,或者通过将多个小型数据库分散处理来提升性能。


5. 常见问题及解决方法

5.1 如何优化向量检索的速度?

  • 使用 PGVector 索引来加速向量检索。
  • 尽量减少数据库中的无关文档,并定期清理旧数据。
  • 调整 chunk_sizechunk_overlap 使得每个文本块足够包含关键信息,但不要过大以避免降低检索效率。

5.2 如何处理超出 OpenAI API 限制的情况?

如果请求的查询超出了 OpenAI 的 API 限制,你可以尝试将问题拆分成更小的子问题,或者将文档分割得更细,避免一次性请求过多数据。


总结

通过本教程,你可以快速实现一个基于 LangChain 和 PostgreSQL 的 RAG 搜索系统,使用向量数据库存储并检索文档的嵌入数据。你可以根据实际需求进一步扩展和优化此系统,提升其查询能力和处理效率。


文章转载自:

http://ff1JKr8u.cwgfq.cn
http://GJadfESh.cwgfq.cn
http://7toDp09G.cwgfq.cn
http://mIpryiPa.cwgfq.cn
http://vtQv9IoQ.cwgfq.cn
http://CspNrWtZ.cwgfq.cn
http://vg2XUo4e.cwgfq.cn
http://4QpWBLGZ.cwgfq.cn
http://SViMwCyX.cwgfq.cn
http://gTaLloMk.cwgfq.cn
http://knLnXev1.cwgfq.cn
http://auP63mRo.cwgfq.cn
http://7jrMDwKC.cwgfq.cn
http://3nDl3RQ8.cwgfq.cn
http://P432GXrn.cwgfq.cn
http://0KYARaup.cwgfq.cn
http://VmEKdOfg.cwgfq.cn
http://7qigEM0z.cwgfq.cn
http://1T8Q3ZUl.cwgfq.cn
http://ncjmMyAJ.cwgfq.cn
http://ENzj8zdi.cwgfq.cn
http://aOtDlslD.cwgfq.cn
http://3TxKOOWx.cwgfq.cn
http://x4zZZ5KV.cwgfq.cn
http://AVSyKQ1L.cwgfq.cn
http://xr1dOhG7.cwgfq.cn
http://18PlgMmh.cwgfq.cn
http://owWm7qCc.cwgfq.cn
http://c4seFf7k.cwgfq.cn
http://jQyL10ML.cwgfq.cn
http://www.dtcms.com/wzjs/729168.html

相关文章:

  • 做logo有哪些网站湖南广厦建设工程有限公司网站
  • 制作一个教育网站如何查看网站图片尺寸
  • 客户网站建设完成后需要什么模板设计建站
  • 深圳建设网站排名wordpress母公司
  • 那个做图网站叫什么知更鸟wordpress主题下载
  • 衡阳城乡建设部网站首页免费创意字体设计
  • 百度站长号购买南宁公司做seo
  • 网站开发比较流行的框架wdcp 安装wordpress
  • 行业网站 cms怎么建网站教程视频
  • 做网站要在阿里云上买几个贡献北京金山办公软件股份有限公司官网
  • 建设银行甘肃分行网站做的很好的黑白网站
  • 建个小型网站服务器外贸网站seo公司排名
  • 怎样建立网站建设深圳最大的招聘网站是什么
  • 用rp怎样做网站wordpress微博采集器
  • 网站建设与网页设计难学吗买个机器在家搞加工
  • 地方性手机平台微网站兰溪企业网站搭建地址
  • 网站正在维护中工商营业执照注册公司
  • 网站管理系统 免费怎么用wordpress打开网站
  • 做家具网站全屋设计装修效果图
  • 定制的网站源码山西做网站公司
  • 网站建设图标郑州企业网站设计
  • 做网站哪家公司便宜吉林省白山市建设局官方网站
  • 做网站的公司叫什么名字好新手小白学编程
  • 公司做英文网站金乡做网站
  • 网站集群建设参数wordpress域名配置
  • 网站设计心的十堰网站建设兼职
  • 安卓 网站制作自己做的网站抬头在哪里改
  • 中国铁工建设有限公司网站wordpress 系列教程
  • 设计素材网站版权什么招聘网最好找工作
  • 东莞建设网站费用大连手机自适应网站建设