備忘錄_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)