備忘錄_20160105(定位) 修改 回首頁

程式 2024-05-14 11:12:43 1715656363 100
raspberry pi 5 + llm(large language model) (使用 ollama) + python

raspberry pi 5 + llm(large language model) (使用 ollama) + python

curl -fsSL https://ollama.com/install.sh | sh
ollama run tinyllama (不聰明)
ollama run orca-mini (太笨)
ollama run llama2 (不錯)

curl http://localhost:11434/api/generate -d '{
  "model": "llama2",
  "stream": false,
  "prompt": "what is your name"
}'

curl http://localhost:11434/api/chat -d '{
  "model": "llama2",
  "stream": false,
  "messages": [
    { 
      "role": "system", 
      "content": "answer questions beased on the content below, if you do not know the answer, just say I do not know. ---- box is 3cm x 5cm x 7cm and weight is 7kg "
    },
    { 
      "role": "user", 
      "content": "what is the szie of a box?" 
    }
  ]
}'

ollama pull mxbai-embed-large

curl http://localhost:11434/api/embeddings -d '{
  "model": "mxbai-embed-large",
  "prompt": "請問人造衛星高度"
}'

參考網頁如下

https://ywctech.net/ml-ai/ollama-first-try/
https://medium.com/@sam33339999/開始使用-ollama-c8509dce0cf3
https://ollama.com/blog/embedding-models


sudo /etc/systemd/system/ollama.service
加入一行
Environment="OLLAMA_HOST=0.0.0.0:11434"
儲存後,重新開機就可以套用
這樣就能在其他地方存取此服務

●假如是 windows 的話,就是要加入 環境變數,設定 OLLAMA_HOST 的值為 0.0.0.0:11434

然後設定windows為自動登入 (因為 ollama 目前沒辦法變成 service,所以須要進入某個帳號)

若要使用 [登錄編輯程式] 開啟自動登入,請依照下列步驟執行:
1.選取 [開始],然後選取 [執行]。
2.在 [開啟]方塊輸入 Regedit.exe,然後按一下 [Enter]。
3.在登錄中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon子機碼。
4.在 [編輯] 功能表按一下 [新增],然後按一下 [字串值]。
5.輸入 [AutoAdminLogon],然後按一下 [Enter]。
6.按兩下 AutoAdminLogon。
7.在 [編輯字串] 對話方塊中,輸入 [1],然後選取 [確定]。
8.按兩下 [DefaultUserName] 項目,輸入您的使用者名稱,然後選取 [確定]。
9.按兩下 [DefaultPassword] 項目,輸入您的密碼,然後選取 [確定]。
  如果 [DefaultPassword] 值不存在,則必須加以加入。 若要新增此值,請依照下列步驟執行:
  a.在 [編輯] 功能表按一下 [新增],然後按一下 [字串值]。
  b.輸入 [DefaultPassword],然後按下 [Enter]。
  c.按兩下 [DefaultPassword]。
  d.在 [編輯字串] 對話方塊中,輸入您的密碼,然後選取 [確定]。
  注意:若未指定任何 DefaultPassword 字串,Windows 會自動將 AutoAdminLogon key 的值從 1 (true) 變更為 0 (false) ,停用 AutoAdminLogon 功能。
10.如果您已將電腦加入網域,您應該新增 DefaultDomainName 值,而值的資料也應設定為網域的完整網域名稱 (FQDN) ,例如: contoso.com.。
11.結束 [登錄編輯程式]。
12.選取 [開始],選取 [關閉],然後在 [註解] 文字方塊輸入原因。
13.選取 [確定],關閉您的電腦。
14.Restart your computer. 您現在可以自動登入。

curl http://localhost:11434/api/chat -d '{
  "model": "llama2",
  "stream": false,
  "messages": [
    { 
      "role": "system", 
      "content": "請用底下內容回答問題,若不知道,請回答我不知道。----大盒子,有紅、綠兩色,每個50元。中盒子,有黃、藍兩色,每個25元。小盒子,只有黑色,每個10元。"
    },
    { 
      "role": "user", 
      "content": "請問一個黃色的中盒子多少錢?" 
    }
  ]
}'

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "stream": false,
  "messages": [
    { 
      "role": "user", 
      "content": "請用括號裡的內容(大盒子,有紅、綠兩色,每個50元。中盒子,有黃、藍兩色,每個25元。小盒子,只有黑色,每個10元。) 回答問題,若不知道,請說不知道。 請問一個黃色的中盒子多少錢?請用中文回答。"
    }
  ]
}'

ollama pull mxbai-embed-large

curl http://localhost:11434/api/embeddings -d '{
  "model": "mxbai-embed-large",
  "prompt": "Llamas are members of the camelid family"
}'

ollama pull sunzhiyuan/suntray-embedding (這個支援中文 ─ text embedding)

###### test.py
import requests 

# Making a GET request 
#r=requests.get('https://liujiaje.com') 
#print(r) 
#print(r.encoding)
#print(r.text)
#print(r.content)
 
url="http://localhost:11434/api/chat"
data={
  "model": "llama3", 
  "stream": False, 
  "messages": [
    {"role": "system", "content": "請用底下內容回答問題,若不知道,請回答我不知道。----大盒子,有紅、綠兩色,每個50元。中盒子,有黃、藍兩色,每個25元。小盒子,只有黑色,每個10元。"}, 
    {"role": "user", "content": "請問一個粉紅色的中盒子多少錢?"}
  ]
}
r=requests.post(url, json=data)
print(r.text)

curl http://192.168.0.210:11434/api/chat -d '{
  "model": "llama3.1",
  "stream": false,
  "messages": [
    { 
      "role": "system", 
      "content": "你是銷售助理,請依底下內容回答問題,若不知道答案,請解釋原因,並提出解決方案。倘有需要,可以提供真人客服Line ID:forplus給客戶。\r\n\r\n底下是大致產品分類\r\n\r\n\"耐燃裝飾板\" 產品包含 \"耐燃一級複合板(PVC系列)\",\"耐燃一級複合板(PVC系列)(設計家系列)\",\"耐燃一級複合板(美耐板系列)\",\"耐燃二級複合板(美耐板系列)\",\"耐燃一級科技不燃板\",\"耐燃一級高壓裝飾耐火板\",\"耐燃二級高壓裝飾耐火板\",\"耐燃一級抗火板,美耐板面材,石紋高亮面\",\"耐燃一級日本進口Leno萊諾檜木吸音板\",\"耐燃二級日本進口Leno萊諾檜木吸音板\",\"A&A矽酸鈣化妝板\",\"複層隔音矽酸鈣板\"。\r\n\"耐燃一級\" 產品包含 \"耐燃一級防火板,平板\",\"耐燃一級防火板,可彎曲\",\"耐燃一級複合板(PVC系列)\",\"耐燃一級複合板(PVC系列)(設計家系列)\",\"耐燃一級複合板(美耐板系列)\",\"耐燃一級科技不燃板\",\"耐燃一級高壓裝飾耐火板\",\"耐燃一級抗火板,美耐板面材,石紋高亮面\",\"耐燃一級日本進口Leno萊諾檜木吸音板\",\"A&A矽酸鈣化妝板\",\"複層隔音矽酸鈣板\"。\r\n\"耐燃二級\" 產品包含 \"耐燃二級複合板(美耐板系列)\",\"耐燃二級高壓裝飾耐火板\",\"耐燃二級日本進口Leno萊諾檜木吸音板\"。\r\n\"吸音隔音材料\" 產品包含 \"耐燃一級日本進口Leno萊諾檜木吸音板\",\"耐燃二級日本進口Leno萊諾檜木吸音板\",\"裝飾吸音板\",\"DIY吸音牆板\",\"日本進口A&A淺野沖孔吸音板\",\"複層隔音矽酸鈣板\",\"AEPE制震墊\",\"日本DAIKEN大建遮音毯\",\"KL-101專業隔音填縫劑\",\"複合木質地板\",\"降噪+同層排水高架地板\",\"門扇隔音五金組\"。\r\n\"環保綠建材\" 產品包含 \"耐燃一級防火板,平板\",\"耐燃一級防火板,可彎曲\",\"耐燃一級複合板(PVC系列)\",\"耐燃一級複合板(PVC系列)(設計家系列)\",\"耐燃一級複合板(美耐板系列)\",\"耐燃二級複合板(美耐板系列)\",\"耐燃一級科技不燃板\",\"耐燃一級日本進口Leno萊諾檜木吸音板\",\"耐燃二級日本進口Leno萊諾檜木吸音板\",\"A&A矽酸鈣化妝板\",\"日本進口A&A淺野沖孔吸音板\",\"複層隔音矽酸鈣板\",\"美國FalconWaterFree科技免水便斗\",\"3M水性環保膠\",\"日本關西漆喰塗料\"。\r\n\"複合板\" 產品包含 \"耐燃一級複合板(PVC系列)\",\"耐燃一級複合板(PVC系列)(設計家系列)\",\"耐燃一級複合板(美耐板系列)\",\"耐燃二級複合板(美耐板系列)\"。\r\n\"高壓裝飾耐火板\" 產品包含 \"耐燃一級高壓裝飾耐火板\",\"耐燃二級高壓裝飾耐火板\"。\r\n\"日本進口Leno萊諾檜木吸音板\" 產品包含 \"耐燃一級日本進口Leno萊諾檜木吸音板\",\"耐燃二級日本進口Leno萊諾檜木吸音板\"\r\n\"防火板\" 產品包含 \"耐燃一級防火板,平板\",\"耐燃一級防火板,可彎曲\"。\r\n\"裝飾吸音板\" 產品包含 \"裝飾吸音板\",\"DIY吸音牆板\"。\r\n\"不燃板\" 就是 \"耐燃一級科技不燃板\"。\r\n\r\n底下是所有產品名稱集合\r\n\r\n\"耐燃一級複合板(PVC系列)\", \"耐燃一級複合板(PVC系列)(設計家系列)\", \"耐燃一級複合板(美耐板系列)\", \"耐燃二級複合板(美耐板系列)\", \"耐燃一級科技不燃板\"(\"不燃板\"), \"耐燃一級高壓裝飾耐火板\", \"耐燃二級高壓裝飾耐火板\", \"耐燃一級抗火板,美耐板面材,石紋高亮面\", \"耐燃一級日本進口Leno萊諾檜木吸音板\", \"耐燃二級日本進口Leno萊諾檜木吸音板\", \"A&A矽酸鈣化妝板\", \"複層隔音矽酸鈣板\", \"耐燃一級防火板,平板\", \"耐燃一級防火板,可彎曲\", \"裝飾吸音板\", \"DIY吸音牆板\", \"日本進口A&A淺野沖孔吸音板\", \"AEPE制震墊\", \"日本DAIKEN大建遮音毯\", \"KL-101專業隔音填縫劑\", \"複合木質地板\", \"降噪+同層排水高架地板\", \"美國FalconWaterFree科技免水便斗\", \"3M水性環保膠\", \"日本關西漆喰塗料\", \"鋁質收邊條\", \"自黏式封邊條\", \"專用膠\", \"PE雙面膠\", \"MCM生態軟板\"(\"生態板\"), \"美耐皿發泡板\", \"美耐皿發泡板\", \"環保石皮板\", \"魔方高架地墊\", \"樂波編織地毯\", \"戶外全竹碳化地板\", \"鋁型材LED燈\", \"自動回歸拉門器\", \"防霉美縫劑\", \"抗病毒LED平板燈\", \"3M中性清潔劑\", \"電池自動保養放電器\""
    },
    { 
      "role": "user", 
      "content": "請問你們有耐燃一級的產品嗎?請用繁體中文回答。" 
    }
  ]
}'