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

asp.net网站配置文件石家庄seo

asp.net网站配置文件,石家庄seo,做网站讯息,有哪些网站可以找兼职做文章目录 准备按批次嵌入加载csv文件,分割文档并嵌入测试嵌入效果总结代码 上一篇文章: 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索,为了演示方便,使用的是 langchain 提供的内存数据库。 在实…

文章目录

    • 准备
    • 按批次嵌入
    • 加载csv文件,分割文档并嵌入
    • 测试嵌入效果
    • 总结
    • 代码


上一篇文章: 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索,为了演示方便,使用的是 langchain 提供的内存数据库。
在实际工作中,更多的使用场景是将矢量化的数据物理存储下来,在查询的时候在从存储介质中读取矢量数据进行查询,不会每次使用矢量数据时都必须想做嵌入。

本文描述了如何使用 Chroma 对csv数据进行矢量化,并且将矢量存储在硬盘中,未来查询矢量数据时,直接从硬盘中读取矢量数据进行查询。
另外,如果数据量大一些,矢量化数据是很花时间的,我们将使用进度条显示嵌入csv的进度。

准备

在正式开始撸代码之前,需要准备一下编程环境。

  1. 计算机
    本文涉及的所有代码可以在没有显存的环境中执行。 我使用的机器配置为:

    • CPU: Intel i5-8400 2.80GHz
    • 内存: 16GB
  2. Visual Studio Code 和 venv
    这是很受欢迎的开发工具,相关文章的代码可以在 Visual Studio Code 中开发和调试。 我们用 pythonvenv 创建虚拟环境, 详见:
    在Visual Studio Code中配置venv。

  3. Ollama
    Ollama 平台上部署本地大模型非常方便,基于此平台,我们可以让 langchain 使用 llama3.1qwen2.5 等各种本地大模型。详见:
    在langchian中使用本地部署的llama3.1大模型 。

  4. C++编译器
    安装 Chroma 时需要C++编译器的支持。我是通过安装 Visual Studio .Net Community 2022 来安装C++编译器的。
    点击这里下载Visual Studio .Net Community

按批次嵌入

一般来说,将文本矢量化很消耗资源,所以耗时较长,我们定义一个按照批次嵌入文档的方法,使用 tqdm 显示进度:

def embed_documents_in_batches(documents, batch_size=10):"""按批次嵌入,可以显示进度。vectordb会自动持久化存储在磁盘。"""vectordb = Chroma(persist_directory=persist_directory,embedding_function=embedding)for i in tqdm(range(0, len(documents), batch_size), desc="嵌入进度"):batch = documents[i:i + batch_size]# 从文本块生成嵌入,并将嵌入存储在本地磁盘。vectordb.add_documents(batch)

加载csv文件,分割文档并嵌入

这里调用之前的按批次嵌入方法,完成嵌入:

def create():"""对文本矢量化并存储在本地磁盘"""data_file = os.path.join(current_dir,'assert/law.csv')loader = CSVLoader(file_path=data_file,csv_args={"delimiter": "#"},autodetect_encoding=True)docs = loader.load()#print(f'加载文件成功,第一个文件内容:{docs[0]}')# 用于将长文本拆分成较小的段,便于嵌入和大模型处理。# 每个文本块的最大长度是1000个字符,拆分的文本块之间重叠部分为200。text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)texts = text_splitter.split_documents(docs)   # 耗时较长,需要耐心等候...embed_documents_in_batches(texts,batch_size=3)

在执行的过程中,我们会在 VS Code 的 Terminal 中直观的看到进入:
矢量化嵌入过程

测试嵌入效果

此时在assert文件夹中已经生成了一个 db_law 文件夹,这里面存储的就是矢量化的数据。

def search(query):"""查询矢量数据库"""vector_store = Chroma(persist_directory=persist_directory,embedding_function=embedding)results = vector_store.similarity_search_with_score(query,k=2)return results

我们调用此方法做一下测试:

results = search("恶意商标申请")
print(f'search results:\n{results}')
search results:
[(Document(id='3ef03cff-e0b1-416c-93f6-1ff281af323c', metadata={'row': 1, 'source': 'E:\\project\\my_opensource\\programming-with-local-large-language-model-gitee\\server\\services\\practice\\assert/law.csv'}, page_content='第六章  法律责任    第三十三条  管理专利工作的部门认定专利侵权行为成立,作出处理决定的,应当责令侵权人立即停止侵权行为,采取下列制止侵权行为的措施:    (一)侵权人制造专利产品
的,责令其立即停止制造行为,销毁制造侵权产品的专用设备、模具,并且不得销售、使用尚未售出的侵权产品或者以任何其他形式将其投放市场;侵权产品难以保存的,责令侵权人销毁该产品。    (二)侵权人使用专利方法
的,责令其立即停止使用行为,销毁实施专利方法的专用设备、模具,并且不得销售、使用尚未售出的依照专利方法所直接获得的产品或者以任何其他形式将其投放市场;侵权产品难以保存的,责令侵权人销毁该产品。    (三
)侵权人销售专利产品或者依照专利方法直接获得产品的,责令其立即停止销售行为,并且不得使用尚未售出的侵权产品或者以任何其他形式将其投放市场;尚未售出的侵权产品难以保存的,责令侵权人销毁该产品。    (四)
侵权人许诺销售专利产品或者依照专利方法直接获得产品的,责令其立即停止许诺销售行为,消除影响,并且不得进行任何实际销售行为。    (五)侵权人进口专利产品或者依照专利方法直接获得产品的,责令侵权人立即停止
进口行为;侵权产品已经入境的,不得销售、使用该侵权产品或者以任何其他形式将其投放市场;侵权产品难以保存的,责令侵权人销毁该产品;侵权产品尚未入境的,可以将处理决定通知有关海关。    (六)停止侵权行为的
其他必要措施。    第三十四条  管理专利工作的部门作出认定专利侵权行为成立的处理决定后,被请求人向人民法院提起行政诉讼的,在诉讼期间不停止决定的执行。    侵权人对管理专利工作的部门作出的认定侵权行为成立
的处理决定期满不起诉又不停止侵权行为的,管理专利工作的部门可以申请人民法院强制执行。    第三十五条  假冒他人专利,涉嫌触犯刑法第二百一十六条的,由管理专利工作的部门移送司法机关依法追究刑事责任。    伪
造或者变造专利证书,涉嫌触犯刑法第二百八十条规定的,由管理专利工作的部门移送司法机关追究刑事责任。    第三十六条  管理专利工作的部门认定假冒他人专利、冒充专利行为成立的,应当责令行为人采取下列改正措施
:'), 0.9691819652571181)]

总结

通过以上步骤,我们实现了将csv数据矢量化并存储在本地,后面我们可以基于此继续开发 RAG 系统和 Agent

代码

本文涉及的所有代码以及相关资源都已经共享,参见:

  • github
  • gitee

🪐祝好运🪐

http://www.zhongyajixie.com/news/48118.html

相关文章:

  • 做网站时背景图片浮动百度搜索竞价
  • 做设计必须知道的几个网站seo搜索排名优化方法
  • 昌平网站建设怎么才能建立一个网站卖东西
  • 开源网站建设实习心得国内推广平台有哪些
  • 广州购物网站开发大数据平台
  • 新闻网站建设评比规则站长工具seo综合查询怎么用
  • wordpress建m域名网站网站推广公司排行榜
  • 建设端午节网站的目的主题aso应用商店优化原因
  • 顺企网宁波网站建设今日小说排行榜百度搜索榜
  • 做打折网站如何app拉新项目推广代理
  • 网站建设销售好做页面优化的方法有哪些
  • 网站模板在线预览网络推广外包哪个公司做的比较好
  • b站私人直播间哪个软件好用域名搜索引擎入口
  • 网站建设 h5百度搜索提交入口
  • wordpress文章自动更新方法长沙网站推广和优化
  • 中山地区做网站公司在百度上怎么发布信息
  • 郑州企业建站设计上海网站营销seo方案
  • 橙子建站是什么平台搜索引擎优化案例分析
  • 做招生网站实体店100个营销策略
  • 软件app研发英语seo什么意思
  • 廊坊外贸网站建设百度搜索引擎优化方式
  • 上海疫情百度灰色词优化排名
  • 移动端网站的优势百度小程序
  • 企业网站建设哪家快软文新闻发布网站
  • 达内网站开发培训价格辽宁网站建设
  • 门户网站建设流程seo是什么意思 为什么要做seo
  • 我的家乡网站设计模板网络推广工具
  • .我爱你 域名网站域名检测工具
  • 外贸用免费网站推广 有效果seo排名优化培训价格
  • 网站公司简介模板免费下载放单平台大全app