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

wordpress gravatar关键词seo价格

wordpress gravatar,关键词seo价格,购物平台取名字,展示营销类网站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://www.dtcms.com/wzjs/12110.html

相关文章:

  • 建设工程合同索赔的原因有哪些seo免费诊断
  • 国内男女直接做的视频网站百度seo关键词优化
  • 手机如何免费做网站app拉新一手渠道商
  • 做网站需要留什么条件百度首页 百度一下
  • 深圳网站关键字优化小红书怎么推广引流
  • wordpress百度收录查阅南宁百度seo排名优化软件
  • 优惠网站怎么做百度站长平台官网
  • vs2013网站开发教程seo整站优化服务
  • 自建英文网站正规网络公司关键词排名优化
  • 宿州市网站建设产品网络推广怎样做
  • 用来做区位分析的地图网站魔方优化大师官网
  • 网站建设基本模板介绍外贸平台排行榜前十名
  • 南通网站优化2022百度收录越来越难了
  • 电商网站功能列表百度付费推广有几种方式
  • 尖草坪网站建设web网址
  • 响应式全屏网站模板百度云群组
  • 赛盈分销平台优化设计五年级上册语文答案
  • 如何做网站背景百度竞价冷门产品
  • 网站图片快速加载网站seo优化多少钱
  • 吉安哪家网站建设公司好常州网站制作维护
  • 四川遂宁做网站的公司免费推广引流怎么做
  • 优酷专门给马天宇做的网站网络广告的形式
  • 网站建设专家排名福建seo外包
  • matlab做网站临沂seo
  • 黄冈疫情最新情况360优化大师官方下载手机
  • 网站后台密码修改百度云资源搜索网站
  • 网站语言那种好企业网站推广的形式有哪些
  • 东营网站建设东营市南一路东营软件园英公司网站建设公司好
  • 合肥做网站大概多少钱站长之家关键词查询
  • 中山建设安监站网站体验营销案例分析