crewAI中通過Ollama調用本地模型的兩種方式

0 背景

crewAI中默認使用的gpt4的模型, 在環境中配置OPENAI_API_KEY即可使用。 但openai的api畢竟是要花錢的, 況且現在對大陸地區做了封禁, 使用起來不是那么方便。 而Ollama可以方便的運行本地的大模型, 既不用花錢, 又可以在本地進行使用。 crewAI中也支持Ollama使用本地模型。

1 使用方式

import os##默認方式,直接使用gpt4, 需要設置OPENAI_API_KEY
# os.environ["OPENAI_API_KEY"] = "Your Key"###通過Ollama使用本地模型的方式1:
os.environ["OPENAI_API_BASE"] = 'http://localhost:11434/v1'  ## 這里如果填http://localhost:11434 會報404錯誤
os.environ["OPENAI_MODEL_NAME"] ='llama3:8b'  # Adjust based on available model
os.environ["OPENAI_API_KEY"] ='NA'
# ####################################### # ###通過Ollama使用本地模型的方式2:
# from langchain.llms import Ollama
#
# llm = Ollama(
#     model="llama3:8b",
#     base_url="http://localhost:11434/")  ##不給base_url參數也可以。如果給的話這里寫http://localhost:11434/v1 會報錯,提示langchain_community.llms.ollama.OllamaEndpointNotFoundError: Ollama call failed with status code 404. Maybe your model is not found and you should pull the model with `ollama pull llama3:8b`.
# ##############################from crewai import Agent, Task, Crewresearch_agent = Agent(role='Researcher',goal='Find and summarize the latest AI news',backstory="""You're a researcher at a large company.You're responsible for analyzing data and providing insightsto the business.""",verbose=True,# llm=llm    ### 注意使用方式2時, 這里需要手動傳入llm
)task = Task(description='Find and summarize the latest AI news',expected_output='A bullet list summary of the top 5 most important AI news',agent=research_agent,tools=[]
)crew = Crew(agents=[research_agent],tasks=[task],verbose=2
)result = crew.kickoff()
print(result)

上面的代碼給出了2種不同的使用Ollama的方式,
第一種方式是與openai api使用方式兼容的一種方式, 直接設置OPENAI_API_BASEOPENAI_MODEL_NAMEOPENAI_API_KEY即可。OPENAI_API_BASE填Ollama服務的本地地址和端口。 注意,此時雖然沒用用openai 的api, 但是OPENAI_API_KEY也是必不可少的, 可以隨便給個值。
第二種方式是顯式的用Ollama定義模型, 然后在agent中手動傳入llm參數, 注意base_url的值。

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

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

相關文章

圖文講解IDEA如何導入JDBC驅動包

前言 學習JDBC編程,勢必要學會如何導入驅動包,這里筆者用圖文的方式來介紹 視頻版本在這里 50秒教你怎么導入驅動包然后進行JDBC編程的學習_嗶哩嗶哩_bilibili 忘記錄音頻了,大伙湊合著看 下載驅動包 https://mvnrepository.com/artifact/mysql/mysql-connector-java 去中…

GB28181設備如何添加

簡介 此篇描述視頻網關(中間件)接入大華、海康、ONVIF設備(NVR、攝像頭)、GB28181設備步驟和流程。 閱讀本文檔之前建議先閱覽視頻網關(中間件)用戶使用手冊。 接入方式和說明 視頻網關(中間…

Flutter——最詳細(GestureDetector)使用教程

背景 組件手勢檢測,單擊、雙擊、長按、松開、移動、橫向拖動、豎向拖動等事件 屬性作用onTap單擊onDoubleTap雙擊onLongPress長按onPanUpdate拖動實時更新onHorizontalDragDown橫向點擊onVerticalDragDown豎向點擊 GestureDetector(onTap: () > setState(() >…

論文學習_Getafix: learning to fix bugs automatically

1. 引言 研究背景:現代生產代碼庫極其復雜并且不斷更新。靜態分析器可以幫助開發人員發現代碼中的潛在問題(在本文的其余部分中稱為錯誤),這對于在這些大型代碼庫中保持高代碼質量是必要的。雖然通過靜態分析盡早發現錯誤是有幫助的,但修復這些錯誤的問題在實踐中仍然主要…

ZP-UHZ系列頂裝式磁翻板液位計

一、用途及特點 ZP-UHZ系列磁浮子液位計是一種能就地指示或遠傳顯示與控制的物位儀表,它廣泛用于石油、化工、輕工、電力、核工業以及食品、醫藥等工業中,對各種塔、罐、槽、箱等容器中介質的液位進行指示和控制。 ZP-UHZ系列磁浮子液位計的指示部分及發…

jmeter-beanshell學習7-props獲取全局變量和設置全局變量

繼續寫點不痛不癢的小東西。第一篇寫了vars設置變量,但是vars只能作用在同一個線程組。跨線程組情況比較少,要是用到跨線程組,有個pros,用法和vars一樣。 在setup線程組設置變量a,執行的時候,jmeter會先執行…

第二證券:轉股溢價率是什么意思?高好還是低好?

轉股溢價率是指可轉債在商場上的交易價格相對于其轉股價值的溢價份額,能夠用來衡量投資者為取得將債券轉換為股票權力而付出的額定金額,是可轉債的重要指標。 轉股溢價率的核算公式為:溢價率=(轉債價格-轉股價值&…

MySql性能調優01-[數據結構和索引]

數據結構和索引 什么是索引索引的種類常見索引數據結構和區別二叉樹 紅黑樹 什么是索引 索引的種類 在Mysql中索引是在存儲引擎層實現的,而不是在服務層實現的 按數據結構分:Btree索引、Hash索引、Full-text索引按存儲結構分:聚簇索引、非聚…

【Python百日進階-Web開發-Peewee】Day296 - 查詢示例(五)聚合2、遞歸

文章目錄 14.6.13 列出每個指定設施的預訂總小時數 List the total hours booked per named facility14.6.14 列出每位會員在 2012 年 9 月 1 日之后的首次預訂 List each member’s first booking after September 1st 201214.6.15 生成成員名稱列表,每行包含成員總數 Produc…

閑話銀行家舍入法,以及在程序中如何實現

前言 相信對于四舍五入的舍入法,大家都耳熟能詳,但對于銀行家舍入法,可能就會比較少接觸了! 可是在金融界,銀行家舍入法可是大名鼎鼎的主角之一,主要應用于金融領域和涉及貨幣計算的場合。 那么&#xf…

異步輪詢 Web API 的實現與 C# 示例

在現代軟件開發中,異步輪詢 Web API 是一種常見的做法,尤其是在需要定期從服務器獲取數據更新的場景下。C# 作為一種功能強大的編程語言,提供了豐富的異步編程支持,使得實現異步輪詢變得相對簡單。本文將介紹如何使用 C# 快速實現…

Google Guava Cache簡介

目錄 簡介和Redis的區別 簡介 Google Guava 是一個開源的 Java 庫,其中提供了一系列強大的工具來簡化 Java 開發工作。其中,Guava Cache 組件提供了一個內存緩存的實現,可以顯著提高應用程序的性能。這是一個高效且靈活的緩存解決方案&#…

conda 創建新的虛擬環境報錯

conda 創建新的虛擬環境報錯 CorruptedEnvironmentError: The target environment has been corrupted. Corrupted environments most commonly occur when the conda process is force-terminated while in an unlink-link transaction. 把錯誤的文件刪除如A.json 再重新運行…

JavaWeb-js(4)

js事件 在前端頁面中,js程序大多數是由事件來驅動的,當觸發某些事件的時候,可以使用js負責響應。 js事件由三部分組成: 事件源——》指的是被觸發的對象; 事件類型——》如何觸發的事件,如:鼠標單擊、雙擊、鍵盤操作等;…

釣魚網站制作-克隆163企業郵箱

這里克隆163企業郵箱比較費勁,和之前的還不一樣,這個克隆的目錄比較多,發現好多工具都克隆不全,要不就是缺少圖片要不就是缺少功能 首先效果 可以看到成功記錄賬戶密碼,接下來再來偽裝到域名 這里克隆網站使用神器 …

stm32使用單通道規則組ADC

Driver_ADC.c 如果需要關閉adc轉換,只需要設置CNT,將其置為0,后面再轉換一次就停止了。 #include "Driver_ADC.h"void Driver_ADC1_Init(void) {/* 1. 時鐘配置 *//* 1.1 adc時鐘 */RCC->APB2ENR | RCC_APB2ENR_ADC1EN;RCC-&g…

bev 之 fastBEV

前面我們提到bev 之 LSS, 知道視覺的BEV方案的主要痛點在于: 1、depth 的預測 2、圖像特征到BEV特征之間的視圖變換消耗大量計算 LSS 為什么需要D維深度 占據大量消耗的原因是LSS 對每個圖像特征點引入深度D,即假設每個像素上存在可能的D維深度。也就是假設不同像…

ubuntu18虛擬機克隆后不能上網和磁盤損壞問題

小學期直接給學弟學妹們自己配好的克隆的虛擬機,結果出現了這兩種問題,參考了網上好多資料,太多了忘了存了,花了好久的時間才解決,這里記錄一下。 磁盤損壞問題: 網絡無法連同問題,ip addr發現…

特征融合篇 | YOLOv10改進之在Neck網絡中添加加權雙向特征金字塔BiFPN

前言:Hello大家好,我是小哥談。在計算機視覺任務中,特征金字塔網絡(FPN)是一種常用的方法,它通過構建不同尺度的特征圖來捕獲不同尺度的目標。然而,傳統的FPN存在一些缺點,如特征融合…

解鎖Postman的API參數化:動態請求的秘訣

🔑 解鎖Postman的API參數化:動態請求的秘訣 在API測試的世界里,參數化是構建靈活、可重用請求的關鍵。Postman作為API開發和測試的領軍工具,提供了強大的參數化功能,允許用戶創建動態、個性化的API請求。本文將深入探…