
API是什么?深入解析API及其應用
"model": "llama2",
"prompt": "為什么天空是藍色的?",
"stream": false,
"options": {
"temperature": 0.7,
"max_tokens": 500
}
}'
此請求會調用本地部署的 llama2
模型,生成一段關于天空顏色的解釋。參數 temperature
控制輸出的隨機性(值越高結果越多樣),max_tokens
則限制生成文本的最大長度。
當處理長文本生成時,Ollama API 的流式模式(stream: true
)允許逐段返回結果,避免長時間等待。這在開發聊天機器人或實時交互系統時尤為重要:
import requests
response = requests.post(
'http://localhost:11434/api/generate',
json={
'model': 'llama2',
'prompt': '詳細解釋量子力學的基本原理',
'stream': True
},
stream=True
)
for chunk in response.iter_content(chunk_size=None):
if chunk:
print(chunk.decode('utf-8'), end='', flush=True)
此代碼段通過逐塊讀取響應內容,實現實時顯示生成結果。
Ollama API 提供 /tags
端點查看本地模型列表,通過 /copy
和 /delete
管理模型文件。例如,將遠程模型拉取到本地環境:
curl http://localhost:11434/api/pull -d '{
"name": "codellama:13b"
}'
此操作使得開發者能夠靈活切換不同規模的模型版本,適應不同算力環境的需求。
結合 Ollama API,開發者可以構建智能編程助手。以下示例演示如何生成 Python 排序函數:
const response = await fetch('http://localhost:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'codellama',
prompt: '寫一個Python函數,實現快速排序算法',
options: { temperature: 0.3 }
})
});
const result = await response.json();
console.log(result.response);
通過設置較低的 temperature
值(0.3),確保生成的代碼結構穩定可靠。
利用流式響應和自定義配置,可搭建高性能客服系統:
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
resp, _ := http.Post("http://ollama-server:11434/api/generate", "application/json", strings.NewReader(`{
"model": "llama2-uncensored",
"prompt": "用戶問:如何重置密碼?請以客服身份回復",
"stream": true,
"options": {"max_tokens": 300}
}`))
defer resp.Body.Close()
buf := make([]byte, 4096)
for {
n, err := resp.Body.Read(buf)
if err == io.EOF {
break
}
fmt.Print(string(buf[:n]))
}
}
此實現確保在用戶等待時持續輸出回復內容,提升交互體驗。
Ollama API 嚴格遵循 JSON 格式規范,典型請求包含以下字段:
{
"model": "{模型名稱}",
"prompt": "{輸入提示}",
"stream": {布爾值},
"format": "json",
"options": {
"temperature": 0.7,
"top_p": 0.9,
"max_tokens": 1000
}
}
model
: 必填字段,指定調用的模型標識符format
: 設為 “json” 時強制返回標準 JSON 格式結果options
: 支持超過 20 種微調參數,包括重復懲罰(repeat_penalty)等高級設置成功響應示例:
{
"response": "天空呈現藍色是由于瑞利散射現象...",
"done": true,
"metrics": {
"total_duration": 540023000,
"load_duration": 12003000,
"sample_count": 15
}
}
done
: 標識生成任務是否完全結束metrics
: 提供詳細的性能指標,用于優化系統資源分配max_tokens
避免生成過長無關內容Ollama API 通過其簡潔的設計與強大的功能,正在成為開發者調用語言模型的首選工具。無論是快速驗證想法,還是構建企業級應用,其 JSON 交互模式與靈活的配置選項都能滿足不同場景需求。隨著開源模型的持續發展,掌握 Ollama API 的使用技巧將成為開發者技術棧中的重要一環。