精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Auto-Retrieval: RAG的智能進化 原創

發布于 2024-10-23 10:21
瀏覽
0收藏

Auto-Retrieval是一種高級的RAG技術,它在啟動向量數據庫檢索之前使用Agent LLM動態推斷元數據過濾器參數和語義查詢,而不是將用戶查詢直接發送到向量數據庫檢索接口(例如密集向量搜索)的樸素RAG。您可以將其視為查詢擴展/重寫的一種形式,也可以將其視為函數調用的一種特定形式;后文我們將給出實現邏輯和代碼。達到效果如下:

用戶輸入

Give me a summary of the SWE-bench paper

推理結果

改寫查詢: summary of the SWE-bench paper
過濾參數: {"filters": [{"key": "file_name", "value": "swebench.pdf", "operator": "=="}], "condition": "and"}

實現步驟

我們借助LlamaCloud來實現,主要通過在LlamaCloud檢索器上設置一個Auto-Retrieval功能。在高層次上,我們的自動檢索函數使用一個調用函數的LLM來推斷用戶查詢的元數據過濾器——比僅僅使用原始語義查詢產生更精確和相關的檢索結果。

  • 定義一個自定義prompt來生成元數據過濾器
  • 給定一個用戶查詢,首先執行塊級檢索,從檢索到的塊中動態召回元數據。
  • 在auto-retrieval prompt中注入元數據作為少量示例。目的是向LLM展示現有的、相關的元數據值示例,以便LLM可以推斷出正確的元數據過濾器。

文檔級檢索器返回整個文件級別的文檔,而塊級檢索器返回特定的塊,實現如此簡單。

from llama_index.indices.managed.llama_cloud import LlamaCloudIndex
import os


index = LlamaCloudIndex(
  name="research_papers_page",
  project_name="llamacloud_demo",
  api_key=os.environ["LLAMA_CLOUD_API_KEY"]
)


doc_retriever = index.as_retriever(
    retrieval_mode="files_via_content",
    # retrieval_mode="files_via_metadata",
    files_top_k=1
)


chunk_retriever = index.as_retriever(
    retrieval_mode="chunks",
    rerank_top_n=5
)

代碼實現

接下來我們將根據上面的流程給出實現代碼:

from llama_index.core.prompts import ChatPromptTemplate
from llama_index.core.vector_stores.types import VectorStoreInfo, VectorStoreQuerySpec, MetadataInfo, MetadataFilters
from llama_index.core.retrievers import BaseRetriever
from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core import Response


import json


SYS_PROMPT = """\
Your goal is to structure the user's query to match the request schema provided below.
You MUST call the tool in order to generate the query spec.


<< Structured Request Schema >>
When responding use a markdown code snippet with a JSON object formatted in the \
following schema:


{schema_str}


The query string should contain only text that is expected to match the contents of \
documents. Any conditions in the filter should not be mentioned in the query as well.


Make sure that filters only refer to attributes that exist in the data source.
Make sure that filters take into account the descriptions of attributes.
Make sure that filters are only used as needed. If there are no filters that should be \
applied return [] for the filter value.\


If the user's query explicitly mentions number of documents to retrieve, set top_k to \
that number, otherwise do not set top_k.


The schema of the metadata filters in the vector db table is listed below, along with some example metadata dictionaries from relevant rows.
The user will send the input query string.


Data Source:
```json
{info_str}
```


Example metadata from relevant chunks:
{example_rows}


"""


example_rows_retriever = index.as_retriever(
    retrieval_mode="chunks",
    rerank_top_n=4
)


def get_example_rows_fn(**kwargs):
    """Retrieve relevant few-shot examples."""
    query_str = kwargs["query_str"]
    nodes = example_rows_retriever.retrieve(query_str)
    # get the metadata, join them
    metadata_list = [n.metadata for n in nodes]


    return "\n".join([json.dumps(m) for m in metadata_list])
        
    


# TODO: define function mapping for `example_rows`.
chat_prompt_tmpl = ChatPromptTemplate.from_messages(
    [
        ("system", SYS_PROMPT),
        ("user", "{query_str}"),
    ],
    function_mappings={
        "example_rows": get_example_rows_fn
    }
)




## NOTE: this is a dataclass that contains information about the metadata
vector_store_info = VectorStoreInfo(
    content_info="contains content from various research papers",
    metadata_info=[
        MetadataInfo(
            name="file_name",
            type="str",
            description="Name of the source paper",
        ),
    ],
)


def auto_retriever_rag(query: str, retriever: BaseRetriever) -> Response:
    """Synthesizes an answer to your question by feeding in an entire relevant document as context."""
    print(f"> User query string: {query}")
    # Use structured predict to infer the metadata filters and query string.
    query_spec = llm.structured_predict(
        VectorStoreQuerySpec,
        chat_prompt_tmpl,
        info_str=vector_store_info.json(indent=4),
        schema_str=VectorStoreQuerySpec.schema_json(indent=4),
        query_str=query
    )
    # build retriever and query engine
    filters = MetadataFilters(filters=query_spec.filters) if len(query_spec.filters) > 0 else None
    print(f"> Inferred query string: {query_spec.query}")
    if filters:
        print(f"> Inferred filters: {filters.json()}")
    query_engine = RetrieverQueryEngine.from_args(
        retriever, 
        llm=llm,
        response_mode="tree_summarize"
    )
    # run query
    return query_engine.query(query_spec.query)

效果展示

auto_doc_rag("Give me a summary of the SWE-bench paper") 
print(str(response))

> User query string: Give me a summary of the SWE-bench paper
> Inferred query string: summary of the SWE-bench paper
> Inferred filters: {"filters": [{"key": "file_name", "value": "swebench.pdf", "operator": "=="}], "condition": "and"}
The construction of SWE-Bench involves a three-stage pipeline:


1. **Repo Selection and Data Scraping**: Pull requests (PRs) are collected from 12 popular open-source Python repositories on GitHub, resulting in approximately 90,000 PRs. These repositories are chosen for their popularity, better maintenance, clear contributor guidelines, and extensive test coverage.


2. **Attribute-Based Filtering**: Candidate tasks are created by selecting merged PRs that resolve a GitHub issue and make changes to the test files of the repository. This indicates that the user likely contributed tests to check whether the issue has been resolved.


3. **Execution-Based Filtering**: For each candidate task, the PR’s test content is applied, and the associated test results are logged before and after the PR’s other content is applied. Tasks are filtered out if they do not have at least one test where its status changes from fail to pass or if they result in installation or runtime errors.


Through these stages, the original 90,000 PRs are filtered down to 2,294 task instances that comprise SWE-Bench.


本文轉載自公眾號哎呀AIYA

原文鏈接:??https://mp.weixin.qq.com/s/wcmJ3OQzDxx_ILo_m7zA2Q??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
標簽
已于2024-10-23 10:22:56修改
收藏
回復
舉報
回復
相關推薦
日韩欧美天堂| 国产91免费在线观看| 狠狠操综合网| 911精品产国品一二三产区| 久久久天堂国产精品| 五月婷婷六月丁香| 免费观看日韩电影| 91精品国产91久久久久久不卡| 五月天精品视频| 久久久91麻豆精品国产一区| 欧美日韩一区免费| 青青草原网站在线观看| 天堂av在线播放| 国产另类ts人妖一区二区| 7777kkkk成人观看| 国产午夜手机精彩视频| 午夜欧洲一区| 精品免费国产二区三区| 日韩爱爱小视频| 鲁鲁在线中文| 伊人婷婷欧美激情| 四虎永久国产精品| 性感美女一级片| 国产成人丝袜美腿| 成人久久久久久| www.日韩一区| 国产精品日本| 久久久久久久成人| 欧美爱爱免费视频| 日韩一区二区在线免费| 亚洲品质视频自拍网| 艳妇乳肉豪妇荡乳xxx| 亚洲最大的免费视频网站| 色噜噜狠狠色综合欧洲selulu| 青春草国产视频| 菠萝蜜视频国产在线播放| 亚洲国产高清在线观看视频| 精品国产乱码久久久久久郑州公司 | 精品中文字幕一区二区三区四区 | 久热在线视频观看| 综合在线影院| 欧美性极品xxxx做受| 2018中文字幕第一页| 中文字幕伦理免费在线视频 | 国产suv精品一区二区883| 国产欧美韩国高清| 国产成人a v| 日日噜噜夜夜狠狠视频欧美人| 91精品国产91久久久久久吃药| 国产一级中文字幕| 亚洲二区视频| 91黑丝在线观看| 亚洲伊人成人网| 日韩视频三区| 青草热久免费精品视频| 久久久久久久久久久影院| 制服诱惑一区二区| 国产91ⅴ在线精品免费观看| 色播视频在线播放| 免费日韩视频| 国产精品久久久久久久久久久新郎 | 欧美成人黄色| 5566中文字幕一区二区电影| 91看片破解版| xxxx日韩| 亚洲欧美日韩中文在线| 亚洲欧洲久久久| 成人情趣视频网站| yellow中文字幕久久| 手机在线免费看片| 伊人久久亚洲美女图片| 91精品国产免费久久久久久| 4438国产精品一区二区| 日一区二区三区| 国产主播喷水一区二区| 精品毛片在线观看| 99re视频精品| 日韩在线第一区| 国产黄a三级三级三级av在线看 | 99精品视频在线看| 国产经典一区| 日韩丝袜美女视频| 在线精品一区二区三区| 精品日韩毛片| 欧美成人sm免费视频| 欧美成人aaaaⅴ片在线看| 久久精品亚洲| 91免费欧美精品| 午夜av免费在线观看| 欧美国产激情二区三区| 欧美日韩午夜爽爽| 国模套图日韩精品一区二区| 欧美精品久久天天躁| 国产精品久久久久久亚洲av| 欧美手机视频| 国内外成人免费激情在线视频网站| 中文字幕在线欧美| 国产精品资源网| 欧美日韩一区二区三| 大地资源网3页在线观看| 亚洲成年人网站在线观看| 一本岛在线视频| 老司机精品视频在线播放| xxxxx91麻豆| 黄色片免费观看视频| 激情六月婷婷综合| 欧美日韩不卡一区二区| 欧美日韩中文不卡| 成人av资源网址| 亚洲午夜久久久久久久久久久| 国产视频911| 99c视频在线| 黄色国产在线| 一区二区三区加勒比av| 国产视频一区二区三区在线播放| 国产色99精品9i| 国产亚洲视频中文字幕视频| 国产精品99re| 国产一区二区三区四区五区美女| 日本在线一区| 久久久123| 天堂中文在线8| 亚洲码欧美码一区二区三区| 亚洲精品720p| 视频国产一区二区| 欧美大片1688网站| 日本亚洲欧美| 久久激情五月激情| 久久久久资源| 少妇视频在线| 99久热这里只有精品视频免费观看| 亚洲视频狠狠| 91wwwcom在线观看| 手机在线精品视频| 亚洲综合男人的天堂| 黄色片免费网址| 午夜片欧美伦| 成人免费网视频| 日本美女在线中文版| 欧美va天堂| 另类图片亚洲另类| 国产又色又爽又黄又免费| 国产日产欧美一区二区视频| 精品中文字幕av| 日韩av网址大全| 91av在线不卡| 色哟哟在线观看| 黑丝美女久久久| 熟女少妇一区二区三区| 亚洲免费网址| 日本一区二区三区四区高清视频| 波多野结衣久久精品| 亚洲精品久久久久久久久| 国产成人精品av久久| 不卡视频免费播放| 国产精品333| 亚洲人成网站77777在线观看| 欧美专区在线播放| 户外极限露出调教在线视频| 日本韩国欧美在线| 亚洲高潮女人毛茸茸| 久久成人18免费观看| 欧美aaa在线观看| 精品视频在线观看网站| 久久久久久九九九| 日韩在线免费看| 欧美午夜一区二区| 中文字幕无码日韩专区免费| 国产99久久久国产精品潘金 | 亚洲国产精品久久久久蝴蝶传媒| 亚洲综合中文字幕68页| 成入视频在线观看| 国产亚洲aⅴaaaaaa毛片| 在线观看毛片视频| 一区二区三区中文字幕| 中文字幕丰满孑伦无码专区| 青椒成人免费视频| 国产资源第一页| 狼人天天伊人久久| 国产精品中文在线| 青草青在线视频| 亚洲欧美国产精品va在线观看| 蜜臀尤物一区二区三区直播| 亚洲视频一区在线观看| 男人网站在线观看| 秋霞成人午夜伦在线观看| 久久av喷吹av高潮av| 窝窝社区一区二区| 91欧美精品午夜性色福利在线| 成人福利影视| 中文字幕亚洲精品| 刘亦菲久久免费一区二区| 在线中文字幕一区二区| 强行糟蹋人妻hd中文| 91免费在线视频观看| 51自拍视频在线观看| 美女日韩在线中文字幕| 亚洲免费视频播放| 精品国产一区二区三区香蕉沈先生| 91在线国产电影| 另类专区亚洲| 欧美激情欧美狂野欧美精品| av黄色在线观看| 亚洲国产精品成人av| 91欧美日韩麻豆精品| 欧美日韩亚洲精品内裤| 欧美日韩在线观看成人| 国产目拍亚洲精品99久久精品| 亚洲精品久久久久久| 日本欧美久久久久免费播放网| 欧美久久在线观看| 欧美顶级大胆免费视频| 欧美在线视频二区| 成人三级av在线| 亚洲综合中文字幕在线| 深夜日韩欧美| 国产精品黄色av| 天堂中文在线播放| 欧美精品福利在线| 91福利国产在线观看菠萝蜜| 亚洲最新视频在线| 亚洲色偷精品一区二区三区| 欧美成人福利视频| 99热这里只有精品9| 欧美日韩国产一级二级| 中文字幕一区二区人妻视频| 欧美日韩国产色| 日韩久久精品视频| 亚洲3atv精品一区二区三区| 久久久久久免费观看| 亚洲丝袜另类动漫二区| 少妇视频一区二区| 国产精品久久影院| 夫妇交换中文字幕| 日本一区二区免费在线观看视频| 亚洲AV无码国产精品| www.亚洲国产| 美女久久久久久久久| 粉嫩13p一区二区三区| 中文字幕av一区二区三区人妻少妇| 美女www一区二区| 手机视频在线观看| 激情文学综合插| 老司机午夜性大片| 国产一区三区三区| 精品人妻一区二区三区免费| 国产又黄又大久久| 久久无码人妻一区二区三区| 国产在线一区二区| 中文字幕一二三区| 不卡一区在线观看| 欧美做受xxxxxⅹ性视频| 国产日韩亚洲欧美综合| 四虎国产成人精品免费一女五男| 国产精品丝袜黑色高跟| 任你操精品视频| 亚洲精品国产精品乱码不99| 欧美极品aaaaabbbbb| 亚洲成在人线免费| 国产精品suv一区二区三区| 日韩欧美aⅴ综合网站发布| 91麻豆精品在线| 欧美裸体一区二区三区| xxxx18国产| 亚洲国产欧美一区二区三区同亚洲 | 国产成人精品a视频一区| 精品国产福利视频| 无码人妻丰满熟妇精品| 欧美日韩国产三级| 丰满人妻一区二区| 精品在线欧美视频| 午夜免费福利在线观看| 欧美成人国产va精品日本一级| av福利在线导航| 国产成人精品视| 国产精品色婷婷在线观看| 好看的日韩精品| 成人直播大秀| 久久av综合网| 欧美bbbbb| 岛国大片在线免费观看| 91视频精品在这里| 日韩欧美视频免费观看| 亚洲午夜日本在线观看| 亚洲不卡在线视频| 欧美一区二区三区在线电影| 日本黄色不卡视频| 中文字幕亚洲一区二区三区五十路| 搞黄网站在线观看| 欧美一区二区三区免费视| 亚洲伊人伊成久久人综合网| 韩国一区二区三区美女美女秀| 欧美一二区在线观看| 成人午夜免费在线| 麻豆91精品视频| 玖玖爱在线观看| 亚洲一区二三区| 亚洲资源在线播放| 日韩av中文在线| av免费在线网站| 国产日韩精品入口| 日韩精选在线| 黄黄视频在线观看| 免费av网站大全久久| 色综合久久五月| 亚洲免费在线观看| 无码人妻精品一区二区三区蜜桃91 | 狠狠热免费视频| 成人国产精品免费观看动漫| 成人信息集中地| 色综合久久综合网97色综合| 韩国av免费在线| 久久这里有精品| 欧美成人aaa| 日韩激情久久| 欧美亚洲一级| 精品黑人一区二区三区观看时间| 亚洲美女屁股眼交| 91片黄在线观看喷潮| 一色桃子一区二区| 欧美日韩123区| 久久久精品动漫| 国产欧美精品| xxxxxx黄色| 亚洲一二三区在线观看| 国产suv一区二区| 久久成年人免费电影| 激情中国色综合| 视频三区二区一区| 视频一区中文字幕国产| 麻豆精品免费视频| 精品国产乱码久久久久久婷婷| 黄色片网站免费在线观看| 欧美激情一级欧美精品| 日韩精品成人在线观看| 2021狠狠干| 国产在线视频一区二区| 女人18毛片毛片毛片毛片区二 | 亚洲欧美国产日韩综合| 国产日韩欧美高清在线| 免费黄色片视频| 中文字幕av一区| 少妇精品视频一区二区免费看| 日韩免费一区二区三区| 久久久噜噜噜| 日本美女bbw| 欧美日本一道本在线视频| 成人影院www在线观看| 91日本视频在线| 欧美激情综合| 成熟妇人a片免费看网站| 午夜视黄欧洲亚洲| 你懂的视频在线免费| 国产精品成人在线| 91综合视频| 男人操女人下面视频| 亚洲成人综合网站| 蜜桃免费在线| 成人h片在线播放免费网站| 中文字幕一区二区三区在线视频| 午夜影院免费版| 亚洲高清视频中文字幕| 天堂a√中文在线| 国产精品视频网址| 国产精品magnet| 久久国产精品无码一级毛片| 欧亚洲嫩模精品一区三区| 毛片免费不卡| 国产精品香蕉视屏| 丝瓜av网站精品一区二区| 香蕉成人在线视频| 日韩视频123| 涩涩视频在线播放| 中文字幕99| 不卡一区二区中文字幕| 欧美人一级淫片a免费播放| 久久亚洲精品网站| 天堂日韩电影| 热久久久久久久久| 亚洲成人精品一区二区| 成人三级黄色免费网站| 99久久精品免费看国产四区| 可以免费看不卡的av网站| 午夜精品福利在线视频| 亚洲精品久久久久久下一站 | 人人澡人人澡人人看| 欧美成人猛片aaaaaaa| 一区二区三区短视频| 中文字幕在线观看一区二区三区| 成人18精品视频| 一级黄色大片免费| 91高潮精品免费porn| 亚洲国产一区二区三区在线播放| 三叶草欧洲码在线| 日韩一区二区三区高清免费看看 | 欧美日韩亚洲视频一区| 看黄网站在线| 欧美精品尤物在线| 福利一区福利二区| 中文字幕一级片|