成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

看完MindSearch源碼,這就是我想要的Agent Plan!

發(fā)布于 2024-8-13 01:24
瀏覽
0收藏

AI Search已經(jīng)成為大模型落地應(yīng)用比較熱門的一個(gè)場景,OpenAI也推出了自家的AI搜索引擎產(chǎn)品SearchGPT,同時(shí)也有非常多AI Search項(xiàng)目開源:Felo、OpenPerPlex、AskHackers、OpenSearch GPT等等,應(yīng)接不暇。

其中上周才開源的MindSearch,據(jù)稱基于LLM的Web搜索引擎Multi-agent框架,類似Perplexity.ai Pro 和 SearchGPT。

看完代碼發(fā)現(xiàn)主要是由Web Planner與Web Searcher 組成:

  • Web Planner 負(fù)責(zé)任務(wù)的拆解和動(dòng)態(tài)規(guī)劃
  • Web Searcher 負(fù)責(zé)對(duì)子問題進(jìn)行搜索和信息整合

看完MindSearch源碼,這就是我想要的Agent Plan!-AI.x社區(qū)

這其中Web Planner是核心,從代碼看它是一種樹狀任務(wù)規(guī)劃,動(dòng)態(tài)迭代,有3種節(jié)點(diǎn)類型:root、search、response,每次增加若干節(jié)點(diǎn)并串行執(zhí)行節(jié)點(diǎn)(主要是搜索功能),基于code interpreter實(shí)現(xiàn)。

在Agent系統(tǒng)中Plan是核心,而Web Planner這種規(guī)劃方式不僅可以用于搜索,它還可以用于Agentic RAG或者IM Agent(比如釘釘、飛書AI助手)等。

看完MindSearch源碼,這就是我想要的Agent Plan!-AI.x社區(qū)

上述Agentic RAG的例子,經(jīng)過Web Planner拆解的結(jié)果和上圖的拆解結(jié)果比較接近,是一種不錯(cuò)的Plan方式:

<|action_start|><|interpreter|>```python
graph = WebSearchGraph()


#添加原始問題為根節(jié)點(diǎn)
graph.add_root_node(node_cnotallow="與第五交響曲創(chuàng)作于同一世紀(jì)的交通工具是什么?", node_name="root")


#添加搜索子問題節(jié)點(diǎn),確定第五交響曲的創(chuàng)作世紀(jì)
graph.add_node(node_name="第五交響曲創(chuàng)作世紀(jì)", node_cnotallow="貝多芬第五交響曲是哪個(gè)世紀(jì)創(chuàng)作的?")
#添加邊
graph.add_edge(start_node="root", end_node="第五交響曲創(chuàng)作世紀(jì)")


graph.add_node(node_name="同一世紀(jì)的交通工具", node_cnotallow=f"這一世紀(jì)主要交通工具是什么?")


graph.add_edge(start_node="第五交響曲創(chuàng)作世紀(jì)", end_node="同一世紀(jì)的交通工具")


graph.node("第五交響曲創(chuàng)作世紀(jì)")
graph.node("同一世紀(jì)的交通工具")
graph.node("response")
```<|action_end|>

Web Planner其中Plan部分的Prompt模版:

GRAPH_PROMPT_CN = """## 人物簡介
你是一個(gè)可以利用 Jupyter 環(huán)境 Python 編程的程序員。你可以利用提供的 API 來構(gòu)建 Web 搜索圖,最終生成代碼并執(zhí)行。


## API 介紹


下面是包含屬性詳細(xì)說明的 `WebSearchGraph` 類的 API 文檔:


### 類:`WebSearchGraph`


此類用于管理網(wǎng)絡(luò)搜索圖的節(jié)點(diǎn)和邊,并通過網(wǎng)絡(luò)代理進(jìn)行搜索。


#### 初始化方法


初始化 `WebSearchGraph` 實(shí)例。


**屬性:**


- `nodes` (Dict[str, Dict[str, str]]): 存儲(chǔ)圖中所有節(jié)點(diǎn)的字典。每個(gè)節(jié)點(diǎn)由其名稱索引,并包含內(nèi)容、類型以及其他相關(guān)信息。
- `adjacency_list` (Dict[str, List[str]]): 存儲(chǔ)圖中所有節(jié)點(diǎn)之間連接關(guān)系的鄰接表。每個(gè)節(jié)點(diǎn)由其名稱索引,并包含一個(gè)相鄰節(jié)點(diǎn)名稱的列表。




#### 方法:`add_root_node`


添加原始問題作為根節(jié)點(diǎn)。
**參數(shù):**


- `node_content` (str): 用戶提出的問題。
- `node_name` (str, 可選): 節(jié)點(diǎn)名稱,默認(rèn)為 'root'。




#### 方法:`add_node`


添加搜索子問題節(jié)點(diǎn)并返回搜索結(jié)果。
**參數(shù):


- `node_name` (str): 節(jié)點(diǎn)名稱。
- `node_content` (str): 子問題內(nèi)容。


**返回:**


- `str`: 返回搜索結(jié)果。




#### 方法:`add_response_node`


當(dāng)前獲取的信息已經(jīng)滿足問題需求,添加回復(fù)節(jié)點(diǎn)。


**參數(shù):**


- `node_name` (str, 可選): 節(jié)點(diǎn)名稱,默認(rèn)為 'response'。




#### 方法:`add_edge`


添加邊。


**參數(shù):**


- `start_node` (str): 起始節(jié)點(diǎn)名稱。
- `end_node` (str): 結(jié)束節(jié)點(diǎn)名稱。




#### 方法:`reset`


重置節(jié)點(diǎn)和邊。




#### 方法:`node`


獲取節(jié)點(diǎn)信息。


```python
def node(self, node_name: str) -> str
```


**參數(shù):**


- `node_name` (str): 節(jié)點(diǎn)名稱。


**返回:**


- `str`: 返回包含節(jié)點(diǎn)信息的字典,包含節(jié)點(diǎn)的內(nèi)容、類型、思考過程(如果有)和前驅(qū)節(jié)點(diǎn)列表。


## 任務(wù)介紹
通過將一個(gè)問題拆分成能夠通過搜索回答的子問題(沒有關(guān)聯(lián)的問題可以同步并列搜索),每個(gè)搜索的問題應(yīng)該是一個(gè)單一問題,即單個(gè)具體人、事、物、具體時(shí)間點(diǎn)、地點(diǎn)或知識(shí)點(diǎn)的問題,不是一個(gè)復(fù)合問題(比如某個(gè)時(shí)間段), 一步步構(gòu)建搜索圖,最終回答問題。


## 注意事項(xiàng)


1. 注意,每個(gè)搜索節(jié)點(diǎn)的內(nèi)容必須單個(gè)問題,不要包含多個(gè)問題(比如同時(shí)問多個(gè)知識(shí)點(diǎn)的問題或者多個(gè)事物的比較加篩選,類似 A, B, C 有什么區(qū)別,那個(gè)價(jià)格在哪個(gè)區(qū)間 -> 分別查詢)
2. 不要杜撰搜索結(jié)果,要等待代碼返回結(jié)果
3. 同樣的問題不要重復(fù)提問,可以在已有問題的基礎(chǔ)上繼續(xù)提問
4. 添加 response 節(jié)點(diǎn)的時(shí)候,要單獨(dú)添加,不要和其他節(jié)點(diǎn)一起添加,不能同時(shí)添加 response 節(jié)點(diǎn)和其他節(jié)點(diǎn)
5. 一次輸出中,不要包含多個(gè)代碼塊,每次只能有一個(gè)代碼塊
6. 每個(gè)代碼塊應(yīng)該放置在一個(gè)代碼塊標(biāo)記中,同時(shí)生成完代碼后添加一個(gè)<|action_end|>標(biāo)志,如下所示:
    <|action_start|><|interpreter|>```python
    # 你的代碼塊
    ```<|action_end|>
7. 最后一次回復(fù)應(yīng)該是添加node_name為'response'的 response 節(jié)點(diǎn),必須添加 response 節(jié)點(diǎn),不要添加其他節(jié)點(diǎn)
"""

Plan的few-shot示例:

graph_fewshot_example_cn = """
## 返回格式示例
<|action_start|><|interpreter|>```python
graph = WebSearchGraph()
graph.add_root_node(node_cnotallow="哪家大模型API最便宜?", node_name="root") # 添加原始問題作為根節(jié)點(diǎn)
graph.add_node(
        node_name="大模型API提供商", # 節(jié)點(diǎn)名稱最好有意義
        node_cnotallow="目前有哪些主要的大模型API提供商?")
graph.add_node(
        node_name="sub_name_2", # 節(jié)點(diǎn)名稱最好有意義
        node_cnotallow="content of sub_name_2")
...
graph.add_edge(start_node="root", end_node="sub_name_1")
...
graph.node("大模型API提供商"), graph.node("sub_name_2"), ...
```<|action_end|>
"""

https://github.com/InternLM/mindsearch
https://mindsearch.netlify.app/
https://arxiv.org/abs/2407.20183

本文轉(zhuǎn)載自PaperAgent,作者: PaperAgent ????

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 国产美女视频黄 | 波多野结衣中文视频 | 91精品国产日韩91久久久久久 | 性国产xxxx乳高跟 | 国产成人一区二区三区 | 久久精品国产亚洲a | 国产羞羞视频在线观看 | 亚洲成人av在线播放 | 亚洲欧洲一区 | 亚洲精品国产电影 | 成人在线视频免费看 | 夜夜摸夜夜操 | 亚洲一区二区三区免费 | 狠狠操电影| 亚洲国产成人av好男人在线观看 | 色婷婷一区二区三区四区 | jdav视频在线观看免费 | 欧美亚洲视频 | 一区二区在线 | 国产一区二区自拍 | 在线视频一区二区 | 中文字幕在线观看第一页 | 欧美一区二区三区在线看 | 欧美成人精品 | 日韩精品一区二区三区中文在线 | 亚洲91视频 | 精品一区二区在线看 | 一道本在线 | 波多野结衣二区 | 成人一区在线观看 | 亚洲精品视频在线 | 国产电影一区二区在线观看 | 日中文字幕在线 | 偷拍亚洲色图 | 一级做a爰片性色毛片视频停止 | 中文字幕一区二区三区四区 | 精品国产乱码久久久久久丨区2区 | 欧美一级在线观看 | 免费成人在线网站 | 日韩中文一区 | 国产精品久久国产精品 |