要查看实际的本地 Ollama API 端点,首先需要确认 Ollama 的本地服务是如何配置和运行的。通常情况下,部署 Ollama 时会有配置文件或日志文件显示服务的运行端口和 API 端点信息。
以下是一些步骤和方法,帮助你确认和查看本地 Ollama API 端点:
1. 查看 Ollama 的启动日志
当你启动 Ollama 时,它通常会输出日志信息,其中包含服务运行的端点。例如:
ollama run sqlcoder:70b-alpha-q8_0
启动命令执行后,观察终端输出,寻找类似以下的信息:
Running on http://localhost:5000
这将告诉你 Ollama 服务运行的端点。
2. 查看配置文件
检查 Ollama 的配置文件(如果有),其中可能包含端点和端口配置信息。配置文件通常位于安装目录或 /etc/ollama
等常见目录中。
3. 使用命令行工具
可以使用命令行工具如 netstat
或 lsof
来查看正在监听的端口。例如:
netstat -tuln | grep LISTEN
或
lsof -iTCP -sTCP:LISTEN -P -n
这些命令会列出所有正在监听的端口,你可以找到 Ollama 服务运行的端口。
4. 查看文档或帮助
查阅 Ollama 的官方文档或帮助命令,通常会提供关于 API 端点的信息。例如:
ollama --help
示例
假设通过启动日志你发现 Ollama 在端口 5000
运行,你可以将端点设置为 http://localhost:5000
。如果具体的 API 端点路径未知,可以通过以下方式进行尝试:
- 查看默认端点路径:常见的 API 路径如
/api
,/predict
,/v1/predict
等。 - 尝试基本路径:假设为
http://localhost:5000/api/v1/predict
或类似路径。
完整的 FastAPI 示例代码
一旦确定了实际的 API 端点,可以使用以下示例代码来调用本地 Ollama 模型:
from fastapi import FastAPI, HTTPException
import requests
app = FastAPI()
# 替换为实际的本地 Ollama API 端点
OLLAMA_LOCAL_URL = "http://localhost:5000/api/v1/predict"
@app.get("/")
def read_root():
return {"message": "Welcome to the FastAPI and Ollama integration!"}
@app.post("/ollama")
def call_ollama(payload: dict):
response = requests.post(OLLAMA_LOCAL_URL, json=payload)
if response.status_code != 200:
raise HTTPException(status_code=response.status_code, detail=response.text)
return response.json()
确认 API 端点
假如你不确定具体的路径,可以使用以下代码来尝试不同的路径:
from fastapi import FastAPI, HTTPException
import requests
app = FastAPI()
BASE_URL = "http://localhost:5000"
@app.get("/")
def read_root():
return {"message": "Welcome to the FastAPI and Ollama integration!"}
@app.post("/ollama")
def call_ollama(payload: dict):
possible_endpoints = ["/api/v1/predict", "/predict", "/api"]
for endpoint in possible_endpoints:
try:
response = requests.post(f"{BASE_URL}{endpoint}", json=payload)
if response.status_code == 200:
return response.json()
except requests.exceptions.RequestException:
continue
raise HTTPException(status_code=404, detail="Ollama endpoint not found.")
使用这些方法,你可以确定本地 Ollama API 端点,并通过 FastAPI 调用它。