码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [vectoreStore]--内存向量存储组件开发


    vectoreStore:该组件通常用来做内存向量存储的,同时利用该存储区获取他的retrieval检索

    内存向量存储使用的参数为:文档、embeddings、输出
    由于他的输出分为vectoreStore向量库存储、retrieval向量检索器,因此需要拿到他的输出分别做处理

    步骤:
    第一步:获取值
    第二步:定义类型并实例化[采用mmr做他的检索处理]
    第三步:对他的输出结果分别做处理

    学习链接:

    https://www.langchain.com.cn/modules/prompts/example_selectors/examples/mmr

    from typing import Any, Dict, Optional,List,Union
    from langchain.schema import Document, BaseRetriever
    from langchain.vectorstores import Chroma
    from langchain.vectorstores.base import VectorStore
    from langchain.embeddings.base import Embeddings
    import chromadb,os
    
    class MemoryVectorStore():
    
        def __init__(self,param_dict: Optional[Dict[str, Any]] = None):
            documents  = param_dict.get("document")
            embeddings :str  = param_dict.get("embeddings")
            if documents is None or len(documents) <= 0:
                raise Exception()
            if embeddings is None or not isinstance(embeddings, Embeddings):
                raise Exception()
            texts = []
            for doc in documents:
                if len(doc)>=1:
                    for doc_copy in doc:
                        doc_page = doc_copy.page_content.replace("\n","")
                        texts.append(doc_page)
            self.__vectorstore = Chroma.from_documents(
                client=chromadb_client,
                documents=texts, 
                embedding=embeddings
                )
            outputs: list = param_dict.get("outputs")
            self.__output = outputs['output'] if outputs is not None and 0 < len(outputs) else "retriever"
            
        
        def source(self) -> Optional[Union[BaseRetriever, VectorStore]]:
            if self.__output.lower() == "retriever".lower():
                retriver = self.__vectorstore.as_retriever()
                retriver.search_type = 'mmr'
                return retriver
            elif self.__output.lower() == "vectorStore".lower():
                return self.__vectorstore
            else:
                return None
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
  • 相关阅读:
    【云原生】Docker 进阶 -- 阿里云服务器安装Docker Compose与初体验
    十四、数据库的导出和导入的两种方法
    自主实现HTTP服务器项目逻辑
    案例解读【淘宝API接口的运用:抓取用户数据从而驱动精准营销
    GDAL Python 过滤Shape Polygon中的面积小于某个阈值的小图斑
    Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第9章 axios发送HTTP请求 9.1 安装axios
    使用REPLACE将数据库某一列字段进行字符串操作
    浪潮java面经总结
    关于 java 的动态绑定机制
    PX4 gazebo仿真修改步长
  • 原文地址:https://blog.csdn.net/weixin_44236424/article/details/133082405
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号