最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python調(diào)用Ollama本地大模型API的完全指南

 更新時(shí)間:2026年03月06日 08:54:39   作者:大尚來也  
Ollama?是一個(gè)開源工具,允許開發(fā)者在本地輕松運(yùn)行主流大語言模型,這篇文章主要介紹了Python調(diào)用Ollama本地大模型API的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

Ollama 是一個(gè)開源工具,允許開發(fā)者在本地輕松運(yùn)行 Llama、Mistral、Gemma 等主流大語言模型(LLM)。它不僅提供命令行交互,還內(nèi)置了 HTTP API 服務(wù),使得我們可以通過 Python 等編程語言遠(yuǎn)程調(diào)用本地模型,實(shí)現(xiàn)私有化、低延遲、無網(wǎng)絡(luò)依賴的 AI 應(yīng)用開發(fā)。

本文將手把手教你如何在 Python 中通過 HTTP 請求調(diào)用 Ollama 的 API,完成文本生成、對話交互等任務(wù)。

一、前提準(zhǔn)備

安裝并啟動(dòng) Ollama

1.官網(wǎng)下載安裝

2.安裝后,在終端運(yùn)行:

ollama run llama3  # 或 mistral、gemma、qwen 等

3.首次運(yùn)行會(huì)自動(dòng)下載模型(需聯(lián)網(wǎng)),之后即可離線使用。

重要:Ollama 默認(rèn)啟動(dòng)一個(gè)本地 HTTP 服務(wù)(http://localhost:11434),即使你只運(yùn)行 ollama run,API 也會(huì)在后臺(tái)可用。

二、Ollama API 簡介

Ollama 提供了簡潔的 RESTful API,核心接口為:

  • POST /api/generate:用于單輪文本生成(非對話)
  • POST /api/chat:用于多輪對話(推薦用于聊天場景)

本文以 /api/chat 為主,更貼近實(shí)際應(yīng)用。

三、Python 調(diào)用示例(使用 requests)

首先安裝依賴(如未安裝):

pip install requests

示例 1:基礎(chǔ)對話(單輪)

import requests
import json

def chat_with_ollama(prompt: str, model: str = "llama3") -> str:
    url = "http://localhost:11434/api/chat"
    payload = {
        "model": model,
        "messages": [{"role": "user", "content": prompt}],
        "stream": False  # 關(guān)閉流式響應(yīng),獲取完整結(jié)果
    }
    response = requests.post(url, json=payload)
    if response.status_code == 200:
        result = response.json()
        return result["message"]["content"]
    else:
        raise Exception(f"請求失敗: {response.text}")

# 使用示例
answer = chat_with_ollama("你好!你能介紹一下自己嗎?")
print(answer)

示例 2:多輪對話(帶上下文)

def multi_turn_chat():
    messages = []
    model = "mistral"  # 可替換為你本地已安裝的模型
    
    while True:
        user_input = input("你: ")
        if user_input.lower() in ["退出", "quit", "exit"]:
            break
            
        messages.append({"role": "user", "content": user_input})
        
        resp = requests.post(
            "http://localhost:11434/api/chat",
            json={
                "model": model,
                "messages": messages,
                "stream": False
            }
        )
        
        if resp.ok:
            reply = resp.json()["message"]["content"]
            print(f"AI: {reply}")
            messages.append({"role": "assistant", "content": reply})
        else:
            print("出錯(cuò)了:", resp.text)
            break

# 啟動(dòng)對話
multi_turn_chat()

四、關(guān)鍵參數(shù)說明

參數(shù)說明
model模型名稱,必須是你本地已通過 ollama pull 或 run 下載的(如 llama3, qwen:7b, gemma:2b)
messages對話歷史,格式為 [{"role": "user/assistant", "content": "..."}]
stream是否啟用流式輸出。設(shè)為 True 時(shí)需逐塊解析響應(yīng)(適合 Web 實(shí)時(shí)展示),F(xiàn)alse 則返回完整結(jié)果
options可選,用于設(shè)置 temperature、max_tokens 等(見下文)

添加生成參數(shù)(如溫度、最大長度)

payload = {
    "model": "llama3",
    "messages": [{"role": "user", "content": "寫一首詩"}],
    "stream": False,
    "options": {
        "temperature": 0.7,
        "num_predict": 100,      # 最大生成 token 數(shù)
        "top_p": 0.9
    }
}

五、常見問題排查

問題 1:Connection refused或無法連接

  • 原因:Ollama 服務(wù)未運(yùn)行
  • 解決:確保終端中已運(yùn)行 ollama serve 或至少執(zhí)行過一次 ollama run xxx

問題 2:model not found

  • 原因:指定的模型未下載
  • 解決:先在終端執(zhí)行 ollama pull llama3(替換為你想用的模型)

問題 3:響應(yīng)慢或卡住

  • 嘗試關(guān)閉 stream(設(shè)為 False
  • 檢查模型是否過大(如 70B 模型需高性能 GPU)

六、進(jìn)階:流式響應(yīng)(Stream)

若需實(shí)時(shí)輸出(如打字機(jī)效果),可啟用流式模式:

def stream_chat(prompt: str, model: str = "llama3"):
    url = "http://localhost:11434/api/chat"
    payload = {
        "model": model,
        "messages": [{"role": "user", "body": prompt}],
        "stream": True
    }
    with requests.post(url, json=payload, stream=True) as r:
        for line in r.iter_lines():
            if line:
                chunk = json.loads(line)
                if "message" in chunk:
                    print(chunk["message"]["content"], end="", flush=True)
    print()  # 換行

注意:流式響應(yīng)返回的是 JSON Lines(每行一個(gè) JSON 對象),需逐行解析。

七、總結(jié)

通過 Ollama 的 HTTP API,Python 開發(fā)者可以:

  • 在本地安全、私有地調(diào)用大模型;
  • 構(gòu)建離線 AI 應(yīng)用(如智能客服、文檔摘要、代碼助手);
  • 無縫集成到 Flask/FastAPI/Web 應(yīng)用中。

核心優(yōu)勢

  • 無需聯(lián)網(wǎng)
  • 支持多種開源模型
  • API 簡潔易用
  • 完全免費(fèi) & 開源

提示:Ollama 還支持自定義 Modelfile 微調(diào)提示詞,進(jìn)一步提升模型表現(xiàn)。

現(xiàn)在,你已經(jīng)掌握了在 Python 中調(diào)用 Ollama 的全部基礎(chǔ)知識??烊ピ囋囉帽镜?LLM 構(gòu)建你的第一個(gè) AI 應(yīng)用吧!

到此這篇關(guān)于Python調(diào)用Ollama本地大模型API的完全指南的文章就介紹到這了,更多相關(guān)Python調(diào)用Ollama API內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

西乌珠穆沁旗| 库尔勒市| 安仁县| 抚宁县| 吴江市| 阿巴嘎旗| 台中县| 炎陵县| 德兴市| 林周县| 临武县| 库尔勒市| 鹰潭市| 高邑县| 通城县| 成都市| 商水县| 汾阳市| 濮阳市| 合江县| 葵青区| 辰溪县| 江西省| 河间市| 嫩江县| 涪陵区| 陇川县| 五台县| 长汀县| 湟中县| 江永县| 桂平市| 洛阳市| 大荔县| 靖宇县| 玛曲县| 周宁县| 称多县| 汤原县| 鄄城县| 太白县|