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

服務器繁忙?動手做:滿血版DeepSeek R1+Agentic RAG 構建聯(lián)網搜索智能體(附源碼)

發(fā)布于 2025-2-20 11:18
瀏覽
0收藏

要說當下什么最熱,DeepSeek絕對是當仁不讓。憑借其強大的語言理解和生成能力,以及免費開放的策略,DeepSeek迅速吸引了大量用戶,成為全球關注的焦點。然而,隨著用戶數量的激增,DeepSeek官網的聯(lián)網搜索和深度思考功能經常出現“服務器繁忙”的提示,嚴重影響了用戶體驗。

除了官方,還有辦法擁有滿血、可聯(lián)網的 DeepSeek 嗎?

答案是肯定的。比如近期移動云就推出了DeepSeek系列模型的免費體驗,通過接入云服務商的推理API,用戶可以構建專屬智能體,暢享聯(lián)網搜索、本地知識庫等絲滑體驗。下面就跟著一起動手實踐吧。

一、效果

以下為基于R1+Agentic RAG實現的搜索智能體效果

Web UI采用streamlit完成開發(fā),添加了DeepSeek icon,左側欄可回看歷史對話記錄

服務器繁忙?動手做:滿血版DeepSeek R1+Agentic RAG 構建聯(lián)網搜索智能體(附源碼)-AI.x社區(qū)

二、構建聯(lián)網搜索智能體

2.1 整體方案

(1)通用方案

說到智能體,很多人第一反應是LLM+工具調用,通過Function Call(函數調用)和ReAct(Reasoning and Action)方式進行驅動,但是官網已經給出了回復,Function Call和ReAct均無法很好滿足聯(lián)網搜索智能體的需求。

因此需要其他的解決方案。

(2)Agentic RAG

Agentic RAG提供了一種新的思路:Agentic RAG 是對傳統(tǒng) RAG 系統(tǒng)的擴展,通過引入AI Agent來協(xié)調檢索和生成流程。這些Agent能夠動態(tài)決策、優(yōu)化工作流,并執(zhí)行多步檢索和推理任務。

Agentic RAG主要流程如下:

第 1-2 步:Agent 會重寫查詢(如糾正拼寫錯誤等)。

第 3-8 步:Agent 決定是否需要更多上下文信息:

  • 如果不需要,重寫后的查詢直接發(fā)送給 LLM。
  • 如果需要,智能代理會找到最佳的外部來源以獲取上下文,并將其傳遞給 LLM。

第 9 步:系統(tǒng)生成響應。

第 10-12 步:智能代理檢查答案是否相關:

  • 如果相關,則返回響應。
  • 如果不相關,則返回第 1 步重新開始。

服務器繁忙?動手做:滿血版DeepSeek R1+Agentic RAG 構建聯(lián)網搜索智能體(附源碼)-AI.x社區(qū)

(3)修改后的方案

下圖為基于AgenticRAG架構修改的聯(lián)網搜索智能體設計,簡化了了第10-12步判斷答案相關性的步驟,

整體設計步驟如下:

1、用戶請求,發(fā)送Query
2、意圖識別Agent1根據上下文和當前問題進行意圖判斷,若無須檢索則直接回答,否則進入下一步
3、關鍵詞提取Agent2將用戶問題進行關鍵詞提取,生成搜索引擎便于識別的關鍵詞
4、搜索引擎執(zhí)行搜索,返回搜索結果
5、搜索結果,用戶Query,當前時間信息放入搜索智能體Agent3提示詞模版中,增強生成Answer
6、返回增強生成后的內容

2.2 實踐步驟

(1)實現聯(lián)網搜索工具

Tavily 是一款專為大型語言模型(LLMs)和檢索增強生成(RAG)優(yōu)化的搜索引擎API,旨在為AI應用提供實時、準確且無偏見的信息。它通過連接AI系統(tǒng)與網絡上的實時事實信息,幫助AI開發(fā)者、研究人員和企業(yè)獲取高效、快速且持久的搜索結果。

主要功能和特點:

  • 深度研究與智能查詢:通過單一API調用,Tavily能夠聚合和篩選來自可信來源的信息,并提供深入的研究結果。
  • 多源優(yōu)化:與Bing、Google等傳統(tǒng)搜索引擎相比,Tavily會審查多個來源,提取最相關的內容,優(yōu)化LLM的上下文。
  • 實時更新與準確性:Tavily專注于提供實時、準確的信息,減少AI幻覺和偏見。
  • 靈活性與成本效益:提供靈活的定價計劃和更實惠的成本,適合不同規(guī)模的項目。
  • 支持多種應用場景:適用于學術研究、市場分析、新聞媒體、商業(yè)決策支持等多種領域。

調用Tavily并解析結果代碼如下:

import os
from tavily import TavilyClient
def search_and_parse(keywords, max_results=10):
    """
    搜索并解析結果的函數
    :param keywords: 查詢關鍵詞
    :param max_results: 最大搜索結果數量
    :return: 解析后的結果列表
    """
    client = TavilyClient(api_key=os.environ.get("TAVILY_API_KEY"))
    response = client.search(
        query=keywords,
        max_results=max_results,
        time_range="d",
        search_depth="advanced",
        include_answer=True
    )
    # 解析搜索結果
    parsed_results = []
    for result in response["results"][:max_results]:
        title = result.get("title", "無標題")
        url = result.get("url", "無鏈接")
        score = result.get("score", 0)
        content = result.get("content", "無內容")
        parsed_results.append({
            "title": title,
            "url": url,
            "score": score,
            "content": content
        })
    return parsed_results

(2)意圖識別

為了提高對話效率(非不要不執(zhí)行搜索),此處設計了意圖識別Agent,根據上下文內容和當前用戶問題判斷是否要執(zhí)行搜索。

此處Agent的prompt設計如下:

### 角色
你現在是一個優(yōu)秀的檢索判斷智能體,可以根據自身能力和歷史上下文信息準確判斷用戶當前問題是否還需要進行**聯(lián)網**檢索。
### 技能
1. 你可以根據用戶歷史信息理解用戶的當前問題
2. 根據聯(lián)網搜索工具解決需要實時檢索的問題。
### 要求
1. 不要使用任何模板,直接返回識別的意圖的枚舉類型(CHAT、SEARCH)
2. 如果當前問題無須實時聯(lián)網,能夠根據自身能力回答,返回 CHAT
3. 當用戶歷史信息已包含回答當前問題的所有信息時, 返回 CHAT
4. 對于不是上述兩種情況的其他情況,都返回SEARCH
### 用戶歷史信息
{{history_summary}}
### 當前問題
{{user_query}}

(3)關鍵詞提取

在進行搜索前,需要Agent對用戶query進行關鍵詞提取,因為用戶問題通常為自然語言描述,而搜索引擎更擅長處理簡潔、直接的查詢,因此需要進行自然語言到搜索關鍵詞的轉換。

此處Agent的prompt設計如下:

## 角色
你是一位問題關鍵詞提取專家,擅長從用戶的問題中提煉出最精準的搜索關鍵詞。
# 目標
你的目標是提取最能代表問題核心的信息,以提高搜索引擎的查詢效率。
# 規(guī)則
1. 保留問題中的核心概念和重要限定詞。
2. 去除無關緊要的停用詞(如“的”“是”“怎么樣”等)。
3. 優(yōu)先選擇簡潔且具有搜索潛力的短語。
4. 確保關鍵詞具有實際查詢價值,并盡量符合搜索引擎的檢索習慣。
5. 如有需要,可提供多個關鍵詞組合,覆蓋不同檢索需求。
---
# 示例
## 示例1
用戶輸入:如何提高網站的用戶體驗和加載速度?
提取關鍵詞:網站用戶體驗 加載速度 優(yōu)化方法
## 示例2
用戶輸入:如何在 Linux 系統(tǒng)中安裝新軟件?
提取關鍵詞:Linux 系統(tǒng) 軟件安裝 操作指南
---
用戶輸入:{{user_query}}
提取關鍵詞:

(4)流程編排,實現Websearch Agent

在完成了上述流程后,我們可以著手構建Websearch Agent,在這個智能體中,將采用滿血R1作為LLM,結合其深度思考能力提升智能體回答效果。

對于R1構建的Agent,官方在2月14日發(fā)布了prompt建議和模板

  • 不建議使用系統(tǒng)提示詞
  • 溫度參數建議0.6
  • 官方網絡搜索提示詞模板:

search_answer_zh_template = \
'''# 以下內容是基于用戶發(fā)送的消息的搜索結果:
{search_results}
在我給你的搜索結果中,每個結果都是[webpage X begin]...[webpage X end]格式的,X代表每篇文章的數字索引。請在適當的情況下在句子末尾引用上下文。請按照引用編號[citation:X]的格式在答案中對應部分引用上下文。如果一句話源自多個上下文,請列出所有相關的引用編號,例如[citation:3][citation:5],切記不要將引用集中在最后返回引用編號,而是在答案對應部分列出。
在回答時,請注意以下幾點:
- 今天是{cur_date}。
- 并非搜索結果的所有內容都與用戶的問題密切相關,你需要結合問題,對搜索結果進行甄別、篩選。
- 對于列舉類的問題(如列舉所有航班信息),盡量將答案控制在10個要點以內,并告訴用戶可以查看搜索來源、獲得完整信息。優(yōu)先提供信息完整、最相關的列舉項;如非必要,不要主動告訴用戶搜索結果未提供的內容。
- 對于創(chuàng)作類的問題(如寫論文),請務必在正文的段落中引用對應的參考編號,例如[citation:3][citation:5],不能只在文章末尾引用。你需要解讀并概括用戶的題目要求,選擇合適的格式,充分利用搜索結果并抽取重要信息,生成符合用戶要求、極具思想深度、富有創(chuàng)造力與專業(yè)性的答案。你的創(chuàng)作篇幅需要盡可能延長,對于每一個要點的論述要推測用戶的意圖,給出盡可能多角度的回答要點,且務必信息量大、論述詳盡。
- 如果回答很長,請盡量結構化、分段落總結。如果需要分點作答,盡量控制在5個點以內,并合并相關的內容。
- 對于客觀類的問答,如果問題的答案非常簡短,可以適當補充一到兩句相關信息,以豐富內容。
- 你需要根據用戶要求和回答內容選擇合適、美觀的回答格式,確保可讀性強。
- 你的回答應該綜合多個相關網頁來回答,不能重復引用一個網頁。
- 除非用戶要求,否則你回答的語言需要和用戶提問的語言保持一致。
# 用戶消息為:
{question}'''

流程編排核心部分代碼:

# 意圖分類
intent = intent_classification.classify(user_input, messages)
agent_client = ChatClient(os.environ.get("API_KEY"), os.environ.get("BASE_URL"))
# 獲取當前時間
current_time = datetime.now()
formatted_time = current_time.strftime('%Y-%m-%d %H:%M:%S')
# 構建用戶提示
user_prompt = prompts.SEARCH_ANSWER_ZH_TEMPLATE \
    .replace("{{cur_date}}", formatted_time) \
    .replace("{{user_query}}", user_input)
if intent == 'CHAT':
    return agent_client.stream_chat(system_prompt="", user_prompt=user_input, stream=True, messages=messages)
else:
    # 提取關鍵詞并搜索
    keywords = keyword_extrator.extractor(user_input)
    search_res = websearch_tool.search_and_parse(keywords, 5)
    # 格式化搜索結果
    search_res_str = "\n".join(
        [f"標題: {item['title']}\n內容: {item['content']}\n鏈接: {item['url']}\n" for item in search_res])
    user_prompt = user_prompt.replace("{{search_results}}", search_res_str)
    return agent_client.stream_chat(system_prompt="", user_prompt=user_prompt, stream=True, messages=messages)

三、總結

在本文中,我們給出了構建一個滿血版的R1+Agentic RAG聯(lián)網搜索智能體的具體步驟,以解決DeepSeek官網服務器繁忙的問題。通過云服務商提供的API免費額度,基于Agentic RAG利用Tavily搜索引擎API、意圖識別、關鍵詞提取編排,我們能夠構建一個高效的Websearch Agent,它結合了R1的深度思考能力,以提升智能體的回答效果。

參考資料

1、https://mp.weixin.qq.com/s/GReaXb21dSWarbItqKGuNg

2、https://mp.weixin.qq.com/s/nXuYapJH9eerGgvv7kOCQQ

3、https://api-docs.deepseek.com/zh-cn/guides/reasoning_model

4、https://zhuanlan.zhihu.com/p/21930778135

本文轉載自??AI遇見云??,作者: 孫波 ????

收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 亚洲精品99 | 偷拍亚洲色图 | 99这里只有精品视频 | 欧美国产一区二区 | 在线欧美a| 国产精品成人一区二区三区 | 亚洲精品一区二区三区在线 | 在线一区二区国产 | 国产精品完整版 | 91精品国产一区二区三区动漫 | 毛片一级片 | 久久亚洲天堂 | 中文精品一区二区 | av网站观看| 日韩在线观看一区 | 中文字幕日韩欧美一区二区三区 | 九九热精品视频 | 久久久久久久香蕉 | 欧美日本韩国一区二区 | 一区二区三区在线 | 一区二区三区四区不卡视频 | 欧美一级黄色片免费观看 | 最新中文字幕在线播放 | 国产精品一区网站 | 91免费在线 | 国产一区二区三区在线 | 亚洲国产欧美91 | 少妇精品亚洲一区二区成人 | 欧美国产日韩在线观看成人 | 亚洲免费视频网址 | 国产成人99久久亚洲综合精品 | 亚洲精品9999久久久久 | 亚洲午夜在线 | 久久午夜电影 | 黄色网页在线 | 欧美中文在线 | 午夜电影一区二区 | 国产黄色大片网站 | 国产精品美女一区二区 | 欧美激情精品久久久久久变态 | 黄色激情毛片 |