mac llama_index agent算術式子計算示例

本文通過簡單數學計算,示例llama_index使用agent解決復雜任務過程。

假設mac本地llama_index環境已安裝,過程參考

mac測試ollama llamaindex-CSDN博客

測試mac筆記本內存8G,所以使用較小LLM完成示例。

ollama pull qwen3:1.7b

qwen3:1.7b能力較弱,需要prompt明確要求使用agent工具,遵守計算前后順序。

prompt示例如下

"使用agent工具計算,遵守計算的先后順序, 20 + (2 x 3) * 4?"

程序示例如下

from llama_index.core.agent import ReActAgent
from llama_index.core.tools import FunctionTool
from llama_index.core import Settings
from llama_index.llms.ollama import OllamaSettings.embed_model = OllamaEmbedding(model_name="yxl/m3e:latest")  
Settings.llm = Ollama(model="qwen3:1.7b", request_timeout=360) # 定義數學計算工具
def multiply(a: float, b: float) -> float:"""Multiply two numbers and returns the product"""return a * bmultiply_tool = FunctionTool.from_defaults(fn=multiply)def add(a: float, b: float) -> float:"""Add two numbers and returns the sum"""return a + badd_tool = FunctionTool.from_defaults(fn=add)# 實例化 ReActAgent
agent = ReActAgent.from_tools([multiply_tool, add_tool], verbose=True
)# 測試代理
response = agent.chat("使用agent工具計算,遵守計算的先后順序, 20 + (2 x 3) * 4?")
print(response)

如下所示,llama_index將示例式子計算過程分解為agent工具的調用過程。

首先是紅色部分,調用multiply完成2*3=6。

然后是棕色部分,調用multiply完成6*4=24。

最后是紫色部分,調用add完成20+24=44。

> Running step 91dcc552-f7b2-4cc3-9af1-cf07812cc8b8. Step input: 請使用agent工具計算,遵守計算的先后順序, 20 + (2 x 3) * 4?
Thought: <think>
Okay, let's see. The user wants to calculate 20 + (2 x 3) * 4 using the agent tool. Hmm, first I need to break down the expression according to the order of operations. Parentheses come first, so I should calculate 2 x 3 first. That's 6. Then multiply by 4, which gives 24. Now add that to 20. So 20 + 24 equals 44. Wait, but the tools available are multiply and add. Let me check the tools again. The multiply tool takes two numbers, and the add tool adds two numbers. So I need to do the multiplication first. Let me do the steps: first multiply 2 and 3, then multiply the result by 4, then add 20. So the steps would be: multiply 2 and 3 to get 6, then multiply by 4 to get 24, then add 20. So the final answer should be 44. I need to use the tools in the correct order. Let me use the multiply tool first for 2 and 3, then multiply the result by 4, then add 20. Let's see how that works.
</think>

Thought: I need to calculate 20 + (2 x 3) * 4 using the available tools. First, multiply 2 and 3, then multiply the result by 4, and finally add 20.
Action: multiply
Action Input: {"a": 2, "b": 3}
Observation: 6

Thought: Now multiply the result (6) by 4.
Action: multiply
Action Input: {"a": 6, "b": 4}
Observation: 24

Thought: Add 24 to 20.
Action: add
Action Input: {'a': 24, 'b': 20}
Observation: 44

> Running step ab11a064-bdde-42df-9fcf-3aa409e18eab. Step input: None
Thought: I can answer without using any more tools. I'll use the user's language to answer
Answer: 44
44

對于更復雜任務和能力更強的LLM,處理過程是類似的。

更強的LLM能更有效的將復雜問題分解為多個agent調用過程,通過agent協同解決復雜問題。

reference

---

mac測試ollama llamaindex

https://blog.csdn.net/liliang199/article/details/149542926

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90740.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90740.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90740.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uni-app小程序云效持續集成

創建項目 必須是 cli 命令行創建的 uni-app 小程序項目參考uni-app官方構建命令&#xff1a; npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project生成小程序代碼上傳密鑰 管理-開發設置-小程序代碼上傳生成的文件放在根目錄即可 安裝持續集成插件 pnpm install uni-mi…

uniapp+高德地圖實現打卡簽到、打卡日歷

一、注冊高德地圖。應用管理創建應用&#xff0c;分別添加Andriod平臺、Web服務、Web端、微信小程序四種類型的key。二、考勤規則打卡地點選擇位置代碼&#xff1a;<script setup lang"ts"> import { onMounted, onUnmounted, reactive, ref, watchEffect } fr…

CentOS 7.9 + GCC9 離線安裝 IWYU(Include What You Use)

本教程適用于 離線環境下在 CentOS 7.9 系統中使用 GCC 9 離線安裝 IWYU 的完整步驟&#xff0c;涵蓋 Clang 11.1.0 編譯、IWYU 構建以及頭文件自動優化流程。&#x1f4e5; 一、準備安裝包請提前下載以下源碼包&#xff08;可通過在線機器提前下載&#xff0c;再傳輸到離線環境…

基于Dapr Sidecar的微服務通信框架設計與性能優化實踐

基于Dapr Sidecar的微服務通信框架設計與性能優化實踐 一、技術背景與應用場景 隨著微服務架構的廣泛應用&#xff0c;分布式系統中服務間通信、可觀察性、可靠性等問題日益凸顯。Dapr&#xff08;Distributed Application Runtime&#xff09;作為一個開源的微服務運行時&…

Claude Code 超詳細完整指南(2025最新版)

&#x1f680; 終端AI編程助手 | 高頻使用點 生態工具 完整命令參考 最新MCP配置 &#x1f4cb; 目錄 &#x1f3af; 快速開始&#xff08;5分鐘上手&#xff09;&#x1f4e6; 詳細安裝指南 系統要求Windows安裝&#xff08;WSL方案&#xff09;macOS安裝Linux安裝安裝驗…

【lucene】SegmentReader初始化過程概述

readers[i] new SegmentReader(sis.info(i), sis.getIndexCreatedVersionMajor(), IOContext.READ); 這個方法已經把所有的文件都讀完了么&#xff1f;沒有“讀完”&#xff0c;但已經**全部“打開”**了。| 動作 | 是否發生 | |---|---| | **打開文件句柄 / mmap** | ? 立即完…

通俗理解主機的BIOS和UEFI啟動方式

“對于 22.04 版本&#xff0c;這些操作說明應適用于通過 BIOS 或 UEFI 兩種方式創建和運行啟動盤。”我們來詳細解釋一下這句話的含義&#xff0c;這句話的核心意思是&#xff1a;你按照這個教程制作出來的 Ubuntu U 盤&#xff0c;將擁有極佳的兼容性&#xff0c;無論是在老電…

Canal 1.1.7的安裝

數據庫操作的準備 1、開啟 Binlog 寫入功能&#xff0c;配置 binlog-format 為 ROW 模式&#xff0c;my.cnf 中配置如下: vi /etc/my.cnf [mysqld] log-binmysql-bin # 開啟 binlog binlog-formatROW # 選擇 ROW 模式 server_id1 # 配置 MySQL replaction 需要定義&#xff0c;…

python---類型轉換

文章目錄1. 基本類型轉換函數int() - 轉換為整數float() - 轉換為浮點數str() - 轉換為字符串bool() - 轉換為布爾值2. 其他類型轉換list() - 轉換為列表tuple() - 轉換為元組set() - 轉換為集合&#xff08;去重&#xff09;dict() - 轉換為字典3. 注意事項1. 兼容性&#xff…

JVM terminated. Exit code=1

出現JVM terminated. Exit code1錯誤通常是因為 Eclipse 所需的 Java 版本與系統中配置的 Java 版本不匹配。從錯誤信息中可以看到關鍵線索&#xff1a;-Dosgi.requiredJavaVersion21&#xff0c;表示此 Eclipse 版本需要 Java 21 或更高版本&#xff0c;但系統當前使用的是 Ja…

20250727-1-Kubernetes 網絡-Ingress介紹,部署Ingres_筆記

一、NodePort存在的不足 ?1. 四層負載均衡 ?? 實現技術: 基于iptables和ipvs實現 OSI層級: 位于傳輸層(第四層) 轉發依據: 基于IP地址和端口進行轉發 特點: 只能看到IP和端口信息 無法識別應用層協議內容 配置簡單但功能有限 2. 七層負載均衡 ?1)七層負載均衡的概念 ?…

Javaweb————HTTP的九種請求方法介紹

??????一.HTTP1.0定義的三種請求方式介紹 &#x1f3cd;?&#x1f3cd;?&#x1f3cd;?&#xff08;1&#xff09;GET請求 作用&#xff1a;向服務器獲取資源&#xff0c;比如常見的查詢請求 應用場景&#xff1a;絕大多數場景&#xff0c;比如我們訪問商城首頁查看圖…

C++day06(練習題)

循序漸進-基礎訓練 格式化輸入輸出 【描述】格式化輸入輸出練習輸入三個整數和一個浮點數&#xff0c;浮點數需要保留的不同小數點后面的數字。 【輸入描述】三個正整數以及以一個浮點數 【輸出描述】三個整數以及保留不同位數的浮點數 【樣例輸入】 1 2 3 9.12345678 【樣例輸…

基于大模型的預訓練、量化、微調等完整流程解析

隨著大語言模型&#xff08;LLM&#xff09;的飛速發展&#xff0c;模型的訓練、部署與優化成為了AI工程領域的重要課題。本文將從 預訓練、量化、微調 等關鍵步驟出發&#xff0c;詳細介紹大模型的完整技術流程及相關實踐。1. 預訓練&#xff08;Pre-training&#xff09; 1.1…

AI入門學習-模型評估示例講解

from sklearn.metrics import classification_report, confusion_matrix from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_classification# 生成示例分類數據 # n_samples: 樣本…

Python編程:初入Python魔法世界

一、常量表達式在編程中&#xff0c;常量指的是在程序執行期間其值不會改變的數據項。雖然 Python 并沒有專門的語法來定義常量&#xff08;不像某些其他語言如 Java 中有 final 關鍵字&#xff09;&#xff0c;但在實踐中&#xff0c;我們通常通過約定俗成的方式來表示一個變量…

Android WorkManager 詳解:高效管理后臺任務

引言在現代移動應用開發中&#xff0c;后臺任務處理是一個至關重要的功能。從同步數據到定期備份&#xff0c;從發送通知到處理耗時操作&#xff0c;后臺任務無處不在。然而&#xff0c;Android系統對后臺任務的限制越來越嚴格&#xff0c;開發者需要找到既高效又符合系統規范的…

MCU(微控制器)中的高電平與低電平?

MCU&#xff08;微控制器&#xff09;中的高電平與低電平&#xff1f; 在數字電路和MCU&#xff08;微控制器&#xff09;中&#xff0c;**高電平&#xff08;High Level&#xff09;和低電平&#xff08;Low Level&#xff09;**是兩種基本的邏輯狀態&#xff0c;用于表示二進…

前端項目下載發票pdf文件要求改文件名筆記

1、a鏈接&#xff08;修改失敗&#xff0c;存在跨域&#xff09;<el-table-columnalignrightlabel"下載地址"width"200"><template slot-scope"{row}"><a :href"row.dataUrl" download"文件名">下載</…

Kotlin 數據容器 - List(List 概述、創建 List、List 核心特性、List 元素訪問、List 遍歷)

一、List 概述List 是一個不可變的有序集合&#xff0c;一旦創建就不能修改其內容&#xff0c;即不能添加、刪除、更改元素List 提供了豐富的操作函數來處理數據二、創建 List 1、基礎創建 通過 listOf 函數創建&#xff08;推薦&#xff09; // 創建一個 List&#xff0c;包含…