自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ollama的配置修改與接口調(diào)用

人工智能 開源
在部署好ollama之后,我們再來介紹ollama的一些其他用法。

一、修改環(huán)境變量

1.1  配置遠(yuǎn)程訪問

在我們本地部署好ollama之后,僅支持本機(jī)訪問,我們可以通過修改環(huán)境變量讓其他人可以遠(yuǎn)程訪問。

在wins電腦上增加環(huán)境變量:

OLLAMA_HOST   0.0.0.0:11434

圖片

1.2  配置本地模型路徑

1.2.1 本地模型默認(rèn)路徑

wins本地模型默認(rèn)路徑:C:\Users\%username%\.ollama\models。

這里 %username% 是當(dāng)前登錄的用戶名。例如,如果用戶名為 Smqnz,則模型文件的默認(rèn)存儲(chǔ)路徑可能是 C:\Users\Smqnz\.ollama\models。

以我的電腦為例:

C:\Users\admin\.ollama\models

圖片

1.2.2 修改本地模型默認(rèn)路徑

wins上的環(huán)境變量增加:

OLLAMA_MODELS  你想要存放的路徑

以下為修改示例:

圖片

修改后,重啟ollama即可。

1.3  配置允許的http請求來源

OLLAMA_ORIGINS 是 Ollama 中用于配置跨域資源共享(CORS)的環(huán)境變量,可以指定哪些來源(域名、IP 地址等)可以訪問 Ollama 提供的 API 服務(wù)。

如果我們想讓它接收任何來源(IP)的http請求的話,我們需要將其設(shè)置為*。

OLLAMA_ORIGINS  *

圖片

這里一定要注意,以上修改的環(huán)境變量名稱必須為大寫,不要隨意修改。

二、ollama常用API請求

一般來說,我們可以通過打開命令行窗口直接進(jìn)行對話。

圖片

但是這種方式對于開發(fā)者來說并不實(shí)用,一般我們需要通過其API進(jìn)行訪問與開發(fā),本次我們就來詳細(xì)聊一下ollama常見的API。

2.1  文本生成API

Ollama 提供了一套功能豐富的文本生成接口,方便用戶與本地部署的模型進(jìn)行交互,以下是其主要的文本生成接口及功能介紹:

接口路徑:POST /api/generate

功能:向模型發(fā)送提示(prompt),生成文本回復(fù)。

請求參數(shù):

model:模型名稱,如 "deepseek-r1:7b"。

prompt:輸入的提示文本。

stream:是否啟用流式輸出,默認(rèn)為 false。

options:可選參數(shù),包括:

    temperature:控制生成文本的多樣性,取值范圍通常為 0 到 1。

    max_tokens:最大生成的 token 數(shù)量。

    top_p:Top-p 采樣參數(shù)。

import requests


# Ollama 服務(wù)的 URL
url = "http://localhost:11434/api/generate"


# 請求數(shù)據(jù)
data = {
    "model": "deepseek-r1:8b",  # 指定模型名稱
    "prompt": "你好,請簡單介紹一下Python語言的特點(diǎn)。",  # 輸入的提示詞
    "stream": False,  # 是否啟用流式響應(yīng)
    "options": {  # 可選參數(shù)
        "temperature": 0.7,  # 溫度參數(shù),控制生成內(nèi)容的隨機(jī)性
        "max_tokens": 100  # 最大生成長度
    }
}


# 發(fā)送 POST 請求
response = requests.post(url, jsnotallow=data)


# 檢查響應(yīng)狀態(tài)
if response.status_code == 200:
    result = response.json()
    print("生成的文本:", result.get("response"))
else:
    print("請求失敗,狀態(tài)碼:", response.status_code)
    print("錯(cuò)誤信息:", response.text)

圖片

2.2  對話聊天API

接口路徑:POST /api/chat

功能:支持多輪對話,模型會(huì)記住上下文。

請求參數(shù):

model:模型名稱。

messages:消息列表,包含用戶輸入和模型回復(fù),格式為 {"role": "user", "content": "用戶輸入內(nèi)容"}。

stream:是否啟用流式輸出,默認(rèn)為 false。

options:可選參數(shù),與生成文本接口類似。

import requests
import json


# 設(shè)置請求的URL和端口
url = "http://localhost:11434/api/chat"


# 設(shè)置請求的數(shù)據(jù)
data = {
    "model": "deepseek-r1:8b",  # 模型名稱
    "messages": [
        {"role": "system", "content": "你現(xiàn)在是一名合格的售票員,你還可以隨意生成一些航班路線提供給用戶,請扮演好您的角色。"},
        {"role": "user", "content": "你好,我想訂一張機(jī)票。"},
        {"role": "assistant", "content": "好的,請問您要去哪里?"},
        {"role": "user", "content": "我要去北京。"},
        {"role": "user", "content": "有哪些航班可選?"}
    ],
    "stream": False  # 是否啟用流式輸出
}


# 設(shè)置請求頭
headers = {
    "Content-Type": "application/json"
}


# 發(fā)送POST請求
response = requests.post(url, headers=headers, data=json.dumps(data))


# 檢查響應(yīng)狀態(tài)碼
if response.status_code == 200:
    # 解析響應(yīng)內(nèi)容
    result = response.json()
    # 輸出模型的回復(fù)內(nèi)容
    print("模型回復(fù):", result.get("message").get("content"))
else:
    # 打印錯(cuò)誤信息
    print(f"請求失敗,狀態(tài)碼:{response.status_code}")
    print("錯(cuò)誤信息:", response.text)

圖片

三、ollama兼容openai的請求

3.1  單輪對話

from openai import OpenAI


client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama默認(rèn)API地址
    api_key="test"  # 必填字段但會(huì)被忽略,隨便填寫即可
)


response = client.chat.completions.create(
    model="deepseek-r1:8b",  # 替換為已下載的模型名稱
    messages=[
        {"role": "system", "content": "你是一個(gè)有幫助的助手"},
        {"role": "user", "content": "用50字解釋量子計(jì)算"}
    ],
    temperature=0.7,
    max_tokens=1024
)


print(response.choices[0].message.content)

圖片

3.2  多輪對話

from openai import OpenAI




def run_chat_session():
    client = OpenAI(
        base_url="http://localhost:11434/v1/",
        api_key="test"  # 必填但會(huì)被忽略
    )


    chat_history = []
    while True:
        user_input = input("用戶:")
        if user_input.lower() == "exit":
            print("AI:對話結(jié)束")
            break


        chat_history.append({"role": "user", "content": user_input})


        try:
            response = client.chat.completions.create(
                messages=chat_history,
                model="deepseek-r1:8b"  # 替換成你安裝的模型名稱
            )
            ai_response = response.choices[0].message.content
            print(f"AI:{ai_response}")
            chat_history.append({"role": "assistant", "content": ai_response})
        except Exception as e:
            print(f"錯(cuò)誤:{e}")




if __name__ == "__main__":
    run_chat_session()

圖片

圖片

圖片

可以看到,多輪對話可以通過維護(hù)問答列表能夠很好地理解上下文的含義。

責(zé)任編輯:龐桂玉 來源: Python伊甸園
相關(guān)推薦

2025-03-10 08:30:00

開源大模型

2010-01-15 10:36:49

CentOS yum配

2025-02-19 08:00:00

SpringBootOllamaDeepSeek

2025-04-09 08:20:00

2010-02-04 09:10:04

Linux PHP

2025-03-10 05:00:00

2025-03-27 09:34:42

2024-03-11 09:32:55

WebClientSpringHTTP

2025-02-06 10:18:45

2024-10-30 11:06:59

SpringAI模型

2021-10-11 11:53:07

C++接口代碼

2024-05-11 10:19:31

TypeScript類型接口

2024-10-18 08:00:00

SpringBoot框架開發(fā)

2019-08-28 14:21:39

C++C接口代碼

2020-07-31 18:33:56

C++編程語言

2023-03-16 08:14:57

2025-03-10 10:00:00

Ollama高并發(fā)

2011-03-21 10:15:07

LAMPLAMP安裝LAMP配置

2011-07-15 15:47:02

JAVA

2011-01-20 11:00:07

Zimbra安裝
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)