使用 Ollama 的本地 LLM 设置 AI 的 REST-API 服务

21

1

使用 Ollama 的本地 LLM 为 AI 设置 REST API 服务似乎是一种实用的方法。这是一个简单的工作流程。

1 安装 Ollama 和 LLM

首先在本地机器上安装 Ollama 和本地 LLM。Ollama 有助于本地部署 LLM,从而更易于管理和利用它们执行各种任务。

安装Ollama

Ollama

Ollama 下载

安装应用程序文件

为 Ollama 安装 LLM

ollama pull llama3
ollama run llama3

下载并运行 llama3

与 llama3 本地聊天

Ollama 命令

Available Commands:
  /set         Set session variables
  /show        Show model information
  /bye         Exit
  /?, /help    Help for a command

Use """ to begin a multi-line message

测试Ollama

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "Why is the sky blue?",
  "stream": true
}'

如果将 stream 设置为 false,则响应将是单个 JSON 对象

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "Why is the sky blue?",
  "stream": false
}'

2 设置FastAPI:

设置 Python FastAPI 应用程序。FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.7+ 构建 API。它是构建强大而高效的 API 的绝佳选择。

开发 FastAPI 路由和端点以与 Ollama 服务器交互。这涉及向 Ollama 发送请求以处理任务,例如文本生成、语言理解或您的 LLM 支持的任何其他 AI 相关任务。以下代码是一个简单的示例。(您还可以使用Ollama Python 库来改进以下编码。)

g.)

from typing import Union
from fastapi import FastAPI
from pydantic import BaseModel
import json
import requests

app = FastAPI(debug=True)

class Itemexample(BaseModel):
    name: str
    prompt: str
    instruction: str
    is_offer: Union[bool, None] = None

class Item(BaseModel):
    model: str
    prompt: str

urls =["http://localhost:11434/api/generate"]

headers = {
    "Content-Type": "application/json"
}


@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.post("/chat/{llms_name}")
def update_item(llms_name: str, item: Item):
    if llms_name == "llama3":
        url = urls[0]
        payload = {
            "model": "llama3",
            "prompt": "Why is the sky blue?",
            "stream": False
        }
        response = requests.post(url, headers=headers, data=json.dumps(payload))
        if response.status_code == 200:
            return {"data": response.text, "llms_name": llms_name}
        else:
            print("error:", response.status_code, response.text)
            return {"item_name": item.model, "error": response.status_code, "data": response.text}
    return {"item_name": item.model, "llms_name": llms_name}

测试 REST-API 服务

curl --location 'http://127.0.0.1:8000/chat/llama3' \
--header 'Content-Type: application/json' \
--data '{
  "model": "llama3",
  "prompt": "Why is the sky blue?"
}
'

通过 API 进行 Curl 请求

API 日志

3.部署:

一旦您对 REST API 的功能和性能感到满意,就可以根据需要将此服务部署到生产环境。这可能涉及将其部署到云平台、使用 Docker 进行容器化或将其部署到服务器上。

在这个简单的示例中,通过利用 Ollama 进行本地 LLM 部署并将其与 FastAPI 集成以构建 REST API 服务器,您可以创建一个免费的 AI 服务解决方案。此模型可以根据您自己的训练数据进行微调,以实现定制目的(我们将在未来讨论)。

给TA打赏
共{{data.count}}人
人已打赏
AI新闻

我如何创建我的第一家 AI 初创公司(没有任何经验)

2024-6-8 23:08:21

AI新闻

GenAI Compass:用于设计生成式 AI 体验的 UX 框架

2024-6-8 23:25:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
今日签到
有新私信 私信列表
搜索