元数据索引有关的错

1、代码:

复制代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-


from langchain_chroma import Chroma
from meta_data import docs, metadata_field_info
# 自我问询rag    self-rag
from base_llm import llm, embeddings_model
from langchain_classic.retrievers.self_query.base import SelfQueryRetriever
#from langchain_classic.retrievers.self_query.chroma import ChromaTranslator



# 文档内容描述(指导LLM理解文档内容)
document_content_description = "Brief description of technical articles"

# 创建向量数据库
vectorstore = Chroma.from_documents(docs, embeddings_model)

"""
SelfQueryRetriever.from_llm
    问题:"作者A发布的论文2025的"  发送给大模型   
    意图识别  
    {
        "query": 发布的论文
        "filter": {'year':2025, 'author':'A'}
    }
    2.元数据过滤   本地条件判断  
    
    3. 语义搜索  
        在过滤完之后的数据中进行相识度对比   

    
    
    
"""


retriever = SelfQueryRetriever.from_llm(
    llm,
    vectorstore,
    document_content_description,
    metadata_field_info,
    #translator=ChromaTranslator(),  # 明确指定
    enable_limit=True
)

print(retriever.invoke('作者A发布的一篇论文'))

引用的文件base_llm.py代码如下:

复制代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-


from dotenv import load_dotenv
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_openai import ChatOpenAI
import os
load_dotenv()

llm = ChatOpenAI(api_key=os.getenv("DASHSCOPE_API_KEY"),
                 base_url=os.getenv("DASHSCOPE_BASE_URL"),
                 model_name="qwen3.7-plus")



# 本地embedding模型地址
embedding_model_path = r'D:\LLM\Local_model\maidalun\bce-embedding-base_v1'
# 初始化嵌入模型(用于文本向量化)
embeddings_model = HuggingFaceEmbeddings(
    model_name=embedding_model_path
)

引用的文件meta_data.py代码如下:

复制代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-


from langchain_core.documents import Document
from langchain_classic.chains.query_constructor.schema import AttributeInfo

docs = [
    Document(
        page_content="作者A团队开发出基于深度学习的图像识别系统,在复杂场景下的识别准确率提升250%",
        metadata={"year": 2025, "rating": 9.3, "genre": "AI", "author": "A"},
    ),
    Document(
        page_content="物联网技术成功应用于智能农业监控,作者B主导的项目实现农作物产量提升20%",
        metadata={"year": 2024, "rating": 9.5, "genre": "IoT", "author": "B"},
    ),
    Document(
        page_content="边缘计算平台实现实时数据处理突破,作者C构建的新型架构支持千万级并发计算",
        metadata={"year": 2023, "rating": 8.8, "genre": "Edge Computing", "author": "C"},
    ),
    Document(
        page_content="机器学习模型预测2025年股市趋势,作者A团队构建的模型准确率超95%",
        metadata={"year": 2024, "rating": 9.0, "genre": "Machine Learning", "author": "A"},
    ),
    Document(
        page_content="基于人工智能的心脏病诊断系统在临床应用中达到顶级专家水平,作者B获医疗科技创新奖",
        metadata={"year": 2025, "rating": 7.2, "genre": "AI", "author": "B"},
    ),
    Document(
        page_content="区块链技术在供应链管理中取得突破,作者C设计的新型协议提升供应链透明度30%",
        metadata={"year": 2024, "rating": 8.9, "genre": "Blockchain", "author": "C"},
    ),
    Document(
        page_content="云计算平台实现能效优化,作者A研发的智能调度系统使数据中心能耗降低50%",
        metadata={"year": 2024, "rating": 8.6, "genre": "Cloud", "author": "A"},
    ),
    Document(
        page_content="大数据分析助力环保监测,作者B团队实现污染源识别准确率提升30%",
        metadata={"year": 2025, "rating": 7.5, "genre": "Big Data", "author": "B"},
    )
]

# 元数据字段定义(指导LLM如何解析查询条件)   工具
metadata_field_info = [
    AttributeInfo(
        name="genre",
        description="Technical domain of the article, options: ['AI', 'Blockchain', 'Cloud', 'Big Data']",
        type="string",
    ),
    AttributeInfo(
        name="year",
        description="Publication year of the article",
        type="integer",
    ),
    AttributeInfo(
        name="author",
        description="Author's name who signed the article",
        type="string",
    ),
    AttributeInfo(
        name="rating",
        description="Technical value assessment score (1-10 scale)",
        type="float"
    )
]

2、执行报错了,报错内容如下:

复制代码
C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Scripts\python.exe C:\Users\lenovo\PycharmProjects\PythonProject\rag\day08\02-元数据索引.py 
C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_core\utils\pydantic.py:41: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
  from pydantic.v1 import BaseModel as BaseModelV1
Loading weights: 100%|██████████| 199/199 [00:00<00:00, 65081.21it/s]
Traceback (most recent call last):
  File "C:\Users\lenovo\PycharmProjects\PythonProject\rag\day08\02-元数据索引.py", line 39, in <module>
    retriever = SelfQueryRetriever.from_llm(
        llm,
    ...<4 lines>...
        enable_limit=True
    )
  File "C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_classic\retrievers\self_query\base.py", line 374, in from_llm
    structured_query_translator = _get_builtin_translator(vectorstore)
  File "C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_classic\retrievers\self_query\base.py", line 71, in _get_builtin_translator
    from langchain_community.vectorstores import (
    ...<17 lines>...
    )
ImportError: cannot import name 'DatabricksVectorSearch' from 'langchain_community.vectorstores' (C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_community\vectorstores\__init__.py)

Process finished with exit code 1

在deepseek上面搜索方案:

DeepSeek

使用了这种方案,执行还是报一样的错:

复制代码
C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Scripts\python.exe C:\Users\lenovo\PycharmProjects\PythonProject\rag\day08\02-元数据索引.py 
C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_core\utils\pydantic.py:41: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
  from pydantic.v1 import BaseModel as BaseModelV1
Loading weights: 100%|██████████| 199/199 [00:00<00:00, 49983.02it/s]
Traceback (most recent call last):
  File "C:\Users\lenovo\PycharmProjects\PythonProject\rag\day08\02-元数据索引.py", line 39, in <module>
    retriever = SelfQueryRetriever.from_llm(
        llm,
    ...<4 lines>...
        enable_limit=True
    )
  File "C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_classic\retrievers\self_query\base.py", line 374, in from_llm
    structured_query_translator = _get_builtin_translator(vectorstore)
  File "C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_classic\retrievers\self_query\base.py", line 71, in _get_builtin_translator
    from langchain_community.vectorstores import (
    ...<17 lines>...
    )
ImportError: cannot import name 'DatabricksVectorSearch' from 'langchain_community.vectorstores' (C:\Users\lenovo\PycharmProjects\PythonProject\.venv\Lib\site-packages\langchain_community\vectorstores\__init__.py)

Process finished with exit code 1
相关推荐
一次旅行1 小时前
AutoAWQ完整实战:MIT激活感知AWQ量化,模型显存减半、推理提速且精度无损
人工智能·python·算法
立心者01 小时前
Sdcb Chats .. 发布,彻底移除 Azure.AI.OpenAI 专用包
人工智能·flask·azure
ajassi20001 小时前
AI语音智能体开发日记(五)为智能设备注入“灵魂”——详解MCP工具的注册与使用
人工智能
GrowthDiary0071 小时前
算法题:寻找二维数组top k问题
数据结构·python·算法
kobesdu2 小时前
从零推导FAST-LIO的观测雅可比矩阵
人工智能·算法·矩阵
u0103055272 小时前
使用BufferedReader读取控制台输入
人工智能·1024程序员节
测试开发技术2 小时前
AI 测试提效 | 告别手工写脚本,分享我的 Playwright + Skill 批量生成 UI 自动化脚本方案
自动化测试·人工智能·ui·自动化·agent·skill·ai测试
乐思智能科技有限公司2 小时前
PLECS软件学习使用(二)直流电机基本系统模型
人工智能·算法·机器学习·面试·职场和发展
极连AI2 小时前
极连AI平台解读、Codex5.6仅需0.01倍率,无需Token焦虑,极速响应
人工智能·gpt·chatgpt·aigc·ai编程·ai写作·gpu算力