元数据索引有关的错

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
相关推荐
特立独行的猫A1 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
AllData公司负责人3 小时前
AI大模型数据开发底座系列说明书,AllData集成Chat2DB开源项目建设AI 数据库分析底座,涵盖AI 洞察/对话SQL/智能视图!
数据库·人工智能·sql·开源·ai 洞察·对话sql
泯泷5 小时前
让 Agent 分清“马上办、等一等、顺手办”
人工智能·llm·agent
鲜于言悠9055 小时前
Claude Fable 5.2 登场,专治复杂推理与长任务
人工智能
大可不必了6 小时前
03 函数定义和调用
开发语言·python
联犀6 小时前
如何工程化降低语音交互AI设备的延迟(小智ai,芙崽这样的ai设备)
人工智能
杉岩数据6 小时前
杉岩数据董事长陈坚:从数据存储到行业智能——杉岩的AI时代战略布局
人工智能
冬奇Lab6 小时前
Loop 工程到底是高深的新技术,还是炒冷饭?用训练一个识别狗的模型讲明白
人工智能
冬奇Lab6 小时前
一天一个开源项目(第260篇):Plannotator —— 给 AI 编码 Agent 配一块「可批注的审阅台」,计划和代码改动都能在浏览器里逐条批示
人工智能·开源·claude
泯泷6 小时前
语音,正在成为 AI Agent 最自然的接口
人工智能·llm·agent