元数据索引有关的错

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
相关推荐
Ai-_Man19 分钟前
希望大家能推荐一款软件,可以直接把文心生成的代码变流程图,提高办公效率
人工智能·ai·小程序·流程图
AI02263 小时前
探秘AI Agent软件公司:开启智能时代的创新引擎
人工智能
fīɡЙtīиɡ ℡5 小时前
AI 应用系统设计
java·开发语言·人工智能
小淮AI5 小时前
国际教育课程的本土化探索:以枫叶教育三十年为观察样本
大数据·人工智能
又折桃枝换酒钱5 小时前
VisCoder2:构建多语言可视化编码智能体(翻译与解读)
人工智能·信息可视化
AI绘画哇哒哒5 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
Chengbei115 小时前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
QN1幻化引擎5 小时前
DalinX Phi 性能突破:跨层秩保持对齐与意识涌现度量的实证研究
人工智能·ai·架构·agi·asi
NeilCarmack5 小时前
Deepseek-harness增加桌面版端序列:第 1 讲 · 命令解析:`pnpm dsh desktop` 的第一步
人工智能·agent·ai agent