精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
構建本地 AI 智能體:LangGraph、AI 智能體和 Ollama 使用指南-2

上一篇文章:構建本地 AI 智能體:LangGraph、AI 智能體和 Ollama 使用指南-1

一、Ollama 快速介紹

Ollama 是一個開源項目,它使在本地機器上運行大型語言模型(LLM)變得簡單且用戶友好。它提供了一個用戶友好的平臺,簡化了 LLM 技術的復雜性,使其易于訪問和定制,適用于希望利用 AI 力量而無需廣泛的技術專業知識的用戶。

它易于安裝。此外,我們有一系列模型和一套全面的功能和功能,旨在增強用戶體驗。

關鍵特點:

  • 本地部署:直接在本地機器上運行復雜的 LLM,確保數據隱私并減少對外部服務器的依賴。
  • 用戶友好的界面:設計直觀易用,適用于不同技術水平的用戶。
  • 可定制性:微調 AI 模型以滿足您的特定需求,無論是研究、開發還是個人項目。
  • 開源:作為開源項目,Ollama 鼓勵社區貢獻和持續改進,促進創新和協作。
  • 輕松安裝:Ollama 以其用戶友好的安裝過程脫穎而出,為 Windows、macOS 和 Linux 用戶提供直觀、無憂的設置方法。

Ollama 社區是一個充滿活力、以項目為驅動的社區,促進協作和創新,有一個活躍的開源社區增強其開發、工具和集成。

二、使用 LangGraph 和 Ollama 創建 AI 智能體的步驟

在這個演示中,我們將使用qwen2:7b 模型創建一個簡單的智能體示例。這個智能體可以使用 Tavily 搜索 API 搜索網絡并生成響應。

我們將從安裝 Langgraph 開始,這是一個設計用于使用 LLM 構建有狀態、多參與者應用程序的庫,非常適合創建智能體和多智能體工作流程。LangGraph 受到 Pregel、Apache Beam 和 NetworkX 的啟發,由 LangChain Inc. 開發,可以獨立于 LangChain 使用。

我們將使用qwen2:7b 作為我們的 LLM 模型,該模型將與 Ollama 和 Tavily 的搜索 API 集成。Tavily 的 API 針對 LLM 進行了優化,提供了事實性、高效、持久的搜索體驗。

開始安裝langgraph包:

pip install -U langgraph

如有需要,安裝其他包:

pip install langchain-openai langchainhub

完成安裝后,我們將進入下一個關鍵步驟:提供 Travily API 密鑰。

注冊 Travily 并生成 API 密鑰。

export TAVILY_API_KEY='apikeygoeshere'

現在,我們將運行以下代碼來獲取模型。請嘗試使用 Llama 或任何其他版本的 qwen2:7b。

ollama pull qwen2:7b

導入構建智能體所需的所有必要庫。

from langchain import hubfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langchain.prompts import PromptTemplatefrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAIfrom langchain_core.output_parsers import JsonOutputParserfrom langchain_community.chat_models import ChatOllama

我們將首先定義我們想要使用的工具,并將工具與 llm 綁定。在這個簡單的例子中,我們將使用通過 Tavily 提供的內置搜索工具。

示例代碼如下所示:

import os# 設置環境變量'TAVILY_API_KEY',將其值設為一個API密鑰字符串# 這個密鑰用于認證和授權應用程序訪問Tavily API的服務# 通過將API密鑰存儲在環境變量中,可以提高代碼的安全性和可維護性,避免硬編碼敏感信息os.environ['TAVILY_API_KEY'] = 'tvly-xxxxxxxxxx'# 初始化ChatOpenAI實例,設置以下參數:# model參數指定使用的語言模型為'qwen2:7b'# temperature參數設置為0.0,這意味著生成的響應將更加確定和基于模型的知識,減少隨機性# api_key參數設置為'ollama'# base_url參數指定了與模型交互的API基礎URL,此處指向本地主機上的一個特定端口和路徑llm = ChatOpenAI(model='qwen2:7b', temperature=0.0, api_key='ollama', base_url='http://localhost:11434/v1')# 創建工具列表,其中包含一個TavilySearchResults實例,用于執行搜索操作# max_results參數設置為3,這意味著每次搜索將返回最多3個結果tools = [TavilySearchResults(max_results=3)]

下面的代碼片段檢索一個提示模板并以可讀格式打印。然后可以根據需要使用或修改此模板。

# 從LangChain的Hub中拉取一個預定義的prompt模板prompt = hub.pull('wfh/react-agent-executor')# 使用pretty_print()方法以更易讀的格式打印模板內容prompt.pretty_print()

使用前面創建的語言模型(llm)、一組工具(tools)和一個提示模板(prompt)創建一個智能體(agent)。

# 創建agent對象agent = create_react_agent(llm, tools, messages_modifier=prompt)from IPython.display import Image, display# agent.get_graph()方法返回代理的內部狀態圖,描述了代理的組件和它們之間的關系# draw_mermaid_png()方法將狀態圖轉換為PNG格式的圖像,便于可視化展示display(Image(agent.get_graph().draw_mermaid_png()))

這段代碼的作用是在Jupyter Notebook中顯示智能體的結構和工作流程圖,幫助理解和調試智能體的行為。

agent 節點會使用消息列表調用語言模型。如果生成的 AIMessage 包含 tool_calls,則圖將調用 tools 節點。tools 節點執行工具(每個 tool_call 執行一個工具),并將響應作為 ToolMessage 對象添加到消息列表中。然后 agent 節點再次調用語言模型。這個過程會一直重復,直到響應中不再有 tool_calls。然后 agent 返回包含鍵 'messages' 的字典,其中包含了完整的消息列表。

# 調用agent的invoke方法response = agent.invoke({'messages': [('user', '解釋人工智能')]})# 遍歷響應字典中'messages'鍵對應的列表,該列表包含了代理生成的響應消息for message in response['messages']: print(message.content)

生成如下響應:

#記錄夏日生活點滴#

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
徹底搞懂LangGraph:構建強大的Multi-Agent多智能體應用的LangChain新利器 【1】
【AI Agent】【LangGraph】1. 進階實戰:給你的 LangGraph 加入條件分支
AI Agent學習系列一:初識Agent
讓AI Agent像團隊一樣協作的開源架構CrewAI
Dify:完善生態、支持Ollama與本地知識庫、拖放式UI 構建Agent!
短短數天收獲 5.6K star,本地搭建屬于你自己的AI搜索引擎,太強了!
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 彭泽县| 本溪| 民和| 登封市| 揭阳市| 五华县| 宜春市| 长治县| 浪卡子县| 宝兴县| 丹寨县| 宜春市| 葵青区| 洛浦县| 嫩江县| 江川县| 楚雄市| 凌源市| 新化县| 博乐市| 华安县| 荔浦县| 昌都县| 天镇县| 辉南县| 桃源县| 仁寿县| 吉木乃县| 邯郸市| 苏尼特左旗| 台州市| 新田县| 潍坊市| 南召县| 沙坪坝区| 玉屏| 清苑县| 扬州市| 沭阳县| 平泉县| 尼玛县|