精品欧美一区二区三区在线观看 _久久久久国色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在线播放网站| 国产一区二区91| 日本久久91av| 久久久综合久久久| 久久不见久久见国语| 欧美高清视频在线高清观看mv色露露十八| 中文字幕人妻熟女人妻洋洋| 每日更新在线观看av| 国产一区二区三区四区五区入口| 97av在线影院| 午夜爱爱毛片xxxx视频免费看| 激情小说一区| 欧美一级日韩免费不卡| 毛片一区二区三区四区| 日本在线视频中文有码| 亚洲国产精品t66y| 久久精品美女| 亚洲精品97久久中文字幕| 日韩高清在线电影| 2019中文字幕免费视频| 精品国产乱码久久久久久鸭王1 | 校园激情久久| 久热精品视频在线观看| 69视频在线观看免费| 国产一区二区在线视频你懂的| 欧美日韩一区二区三区免费看 | 亚洲国产天堂网精品网站| 超碰成人在线播放| 台湾佬成人网| 精品日韩美女的视频高清| 国产成人亚洲综合无码| 一区二区三区视频网站 | 欧美一级久久久| 色播五月综合网| 亚洲www啪成人一区二区| 欧美日韩国产页| 国产在线播放观看| 超级碰碰不卡在线视频| 亚洲一区在线看| 老司机午夜网站| 精品国产白色丝袜高跟鞋| 国产精品人人做人人爽人人添| 人偷久久久久久久偷女厕| 日韩电影免费| 久久日韩粉嫩一区二区三区| 国产区一区二区三区| 欧美一级视频免费| 成人免费va视频| 国产精品久久久久久久久久直播 | 成人午夜视频精品一区| 亚洲经典三级| 欧美亚洲国产日韩2020| 国产福利拍拍拍| 国产精品色网| 国产99久久精品一区二区永久免费 | 91porn在线| 波多野结衣欧美| 亚洲国产欧美一区二区三区同亚洲| 丰满人妻一区二区三区大胸| 亚洲精品一区国产| 亚洲аv电影天堂网| 在线精品一区二区三区| 亚洲免费专区| 综合国产在线观看| 中文字幕在线2021| 亚洲国产精品一区制服丝袜| 57pao国产精品一区| www.欧美色| 紧缚奴在线一区二区三区| 亚洲精品女av网站| 黄色av小说在线观看| 久久免费看少妇高潮| 一区在线电影| 国产三线在线| 欧美这里有精品| 韩国一区二区在线播放| 久久综合五月婷婷| 在线观看欧美日韩| 青青草在线观看视频| 亚洲每日更新| 国产精品丝袜视频| 亚洲国产福利视频| 国产视频一区在线播放| 丰满女人性猛交| 极品在线视频| 在线观看av一区| 亚洲欧美日韩中文字幕在线观看| 欧美国产不卡| 久久视频在线免费观看| 欧美精品亚洲精品日韩精品| 美女在线视频一区| 国产一区二区不卡视频在线观看| 成人欧美亚洲| 亚洲高清视频中文字幕| 久久黄色片网站| 日韩高清电影免费| 欧美大胆a视频| 一级特黄免费视频| 成人国产一区二区三区精品| 亚洲一区二区在| 久久久久免费看| 久久精品30| 97久久人人超碰caoprom欧美| 性感美女一级片| 亚洲天堂久久久久久久| 黄色网页免费在线观看| 亚洲天堂网站| 亚洲深夜福利网站| 免费日韩在线视频| 老色鬼精品视频在线观看播放| 国产九区一区在线| 黄色成人在线| 欧美在线观看一区| 三级视频网站在线观看| 亚洲一区色图| 国产精品视频播放| av女名字大全列表| 亚洲一区欧美一区| 午夜影院免费版| 99九九热只有国产精品| 国产suv精品一区二区| 手机在线观看毛片| 亚洲福利视频导航| 成年人性生活视频| 99精品电影| 国产精品视频自在线| 久久久久久青草| 黑人精品xxx一区一二区| 久久免费精品国产| 国产一区激情| 91青青草免费在线看| 韩国av网站在线| 6080国产精品一区二区| 男女男精品视频网站| 日韩精品电影在线| 欧美日韩精品免费在线观看视频| 9765激情中文在线| 亚洲成**性毛茸茸| 日韩大片免费在线观看| 国产成人精品一区二| 日韩精品一区二区三区电影| 激情视频亚洲| 欧美另类在线观看| 午夜精品久久久久久久99| 亚洲男人的天堂av| 免费在线观看日韩av| 欧美久色视频| 国产日韩精品推荐| 国产自产自拍视频在线观看| 亚洲国产另类 国产精品国产免费| 国产无套在线观看| 波多野洁衣一区| 看av免费毛片手机播放| 国产不卡av一区二区| 国产精品扒开腿做爽爽爽视频| porn亚洲| 91精品国产综合久久精品| a级黄色片免费看| 国v精品久久久网| 国产午夜伦鲁鲁| 国产精品手机在线播放| 国产精品一区久久| 亚洲91av| 日韩成人av在线| 波多野结衣黄色| 中文字幕亚洲综合久久菠萝蜜| 日韩不卡的av| 一本久道久久综合狠狠爱| 日本欧美色综合网站免费| ww久久综合久中文字幕| 麻豆国产va免费精品高清在线| www三级免费| 色综合天天综合网天天狠天天 | 国产亚洲一本大道中文在线| 污污的网站18| 欧美日韩一区二区国产| 免费国产在线精品一区二区三区| 国产精品美女午夜爽爽| 欧美高清在线观看| 免费一级在线观看播放网址| 欧美日韩精品欧美日韩精品一 | 天堂а√在线中文在线鲁大师| 国产成人免费xxxxxxxx| caopor在线视频| 欧美午夜一区| 日韩欧美第二区在线观看| 欧美特黄不卡| 国产精品久久久久7777婷婷| 另类视频在线| 中文字幕日韩在线视频| 日本免费不卡视频| 欧美日韩在线播放| 日韩少妇裸体做爰视频| 国产精品电影一区二区| 日韩一级视频在线观看| 国产一区二区福利| 欧美牲交a欧美牲交aⅴ免费真| 91tv官网精品成人亚洲| 欧美日韩在线精品| 成人自拍在线| 成人春色激情网| 永久免费毛片在线播放| 欧美情侣性视频| 嫩草在线视频| 一本色道久久综合狠狠躁篇怎么玩| 亚洲美女福利视频| 在线不卡一区二区| 波多野结衣mp4| 无码av免费一区二区三区试看 | av在线二区| 日韩av影视综合网| а√中文在线资源库| 欧美日韩免费观看一区二区三区| 国产成人无码精品亚洲| 一区二区在线观看不卡| 东京热无码av男人的天堂| 91丝袜美腿高跟国产极品老师| 中文字幕第66页| 日本aⅴ亚洲精品中文乱码| 午夜精品久久久久久久无码 | 国产欧美日韩中文久久| 日本丰满少妇裸体自慰| 成人免费av资源| 4438x全国最大成人| 国产真实乱偷精品视频免| 黄色aaa级片| 丝袜美腿亚洲一区二区图片| 欧美三级在线观看视频| 亚洲黄色天堂| 日韩视频在线视频| 亚洲欧美亚洲| 好色先生视频污| 中文一区一区三区免费在线观看| 日韩精品第一页| av中字幕久久| 亚欧精品在线| 日韩aaaa| 一区二区在线不卡| 99re6这里只有精品| 亚洲午夜精品久久| 97视频精品| 亚洲小说欧美另类激情| 亚洲精品国产成人影院| 中文字幕色呦呦| 亚洲午夜av| 亚洲熟女乱色一区二区三区| 亚洲免费影院| 视色视频在线观看| 精品一区二区三区免费| 污免费在线观看| 高清成人免费视频| 中文字幕精品视频在线| 337p粉嫩大胆噜噜噜噜噜91av| 国内精品久久99人妻无码| 久久久久久99久久久精品网站| 一级黄色性视频| 国产精品三级电影| 91精品国产闺蜜国产在线闺蜜| 亚洲欧美二区三区| 国产一级在线观看视频| 精品久久久精品| 黄色一级视频免费看| 欧美日本免费一区二区三区| 99在线精品视频免费观看20| 亚洲成人黄色在线| 日韩成人黄色| 久久精品视频免费播放| 国产亚av手机在线观看| 日韩美女在线观看一区| 9999精品免费视频| 国产伦精品一区二区三区四区免费| 欧美顶级毛片在线播放| 天天爽天天狠久久久| 亚洲精品99| 美女av免费在线观看| 精彩视频一区二区三区| 你懂的在线观看网站| 中文字幕av在线一区二区三区| 精品人妻伦九区久久aaa片| 欧美日韩国产色| 91久久精品国产91性色69| 欧美v亚洲v综合ⅴ国产v| 三级在线观看| 久久亚洲一区二区三区四区五区高| av2020不卡| 国产日韩av高清| 欧美综合自拍| 2021国产视频| 美女精品网站| 久久黄色一级视频| 国产精品区一区二区三区| 国产在线拍揄自揄拍| 欧美三级电影在线看| 五月激情丁香婷婷| 精品国产拍在线观看| 中文在线免费二区三区| 亚洲一区二区三区777| 欧美日本成人| www.av毛片| 国产一区二区三区美女| 亚欧洲乱码视频| 亚洲自拍偷拍图区| 中文字幕+乱码+中文字幕明步 | 丝袜在线观看| 国产剧情久久久久久| 日韩美女毛片| 国产爆乳无码一区二区麻豆| 精品写真视频在线观看| 婷婷色一区二区三区| 无码av免费一区二区三区试看| 国产精品一级视频| 国产一区二区三区丝袜 | 国产精品一区二区三| 免费欧美视频| 国产伦精品一区二区三区四区视频_| 国产在线精品一区二区不卡了| 国产人妻一区二区| 五月天婷婷综合| 亚洲成人一二三区| 久久天天躁狠狠躁夜夜av| 91国内外精品自在线播放| 欧美午夜精品久久久久久蜜| 一区二区三区成人精品| 中文字幕在线视频播放| 一区二区三区在线视频免费 | 99精品视频在线免费观看| 欧洲第一无人区观看| 777a∨成人精品桃花网| 秋霞成人影院| 国产精品视频在线观看| 日韩欧美精品| 国产精品一区二区小说| 国产欧美精品国产国产专区 | 亚洲天堂导航| 精品国产福利| 亚洲一区不卡| 国产ts丝袜人妖系列视频| 欧美日韩国产精品一区| 欧美一区二区黄片| 97精品在线观看| 私拍精品福利视频在线一区| 国产91在线免费| 久久综合久久久久88| 超碰超碰超碰超碰| 亚洲欧美激情一区| 日韩精品免费观看视频| 亚洲一区二区在线观| 狠狠久久亚洲欧美| 色欲人妻综合网| 精品久久久久一区二区国产| 俺来也官网欧美久久精品| 国产精选一区二区| 国产一级久久| 久久国产柳州莫菁门| 欧美日韩第一区日日骚| 麻豆传媒视频在线| 1区1区3区4区产品乱码芒果精品| 亚洲一级一区| 成人在线一级片| 欧美精品久久99久久在免费线 | 国产在线日韩在线| 2023国产精品久久久精品双| 中文字幕无人区二| 欧美日韩亚洲视频| 91亚洲精选| 国产综合久久久久| 欧美日韩网址| 在线观看日韩精品视频| 欧美日韩色一区| 蜜乳av一区| 日韩欧美一区二区在线观看 | 91在线视频精品| 日韩香蕉视频| 精品伦精品一区二区三区视频密桃 | 亚洲小说春色综合另类电影| 国产成人在线免费看| 国产欧美日韩一区二区三区在线观看 | 99热这里只有精品8| 少妇av片在线观看| 日韩视频在线观看一区二区| 欧美成人黑人| 日本高清视频免费在线观看| 91在线视频免费91| 一区二区三区免费在线| 国内精品久久久久久久久| 成人高清电影网站| 欧美丰满熟妇bbb久久久| 欧美色综合久久| 国产乱码精品一区二三赶尸艳谈| 亚洲精品在线免费看| 成人成人成人在线视频| 亚洲香蕉在线视频| 91精品国产成人www| 婷婷成人基地| 精品人妻无码一区二区三区换脸| 日韩欧美专区在线|