用织梦系统做网站,东莞企业网站制,网站地图写法,页面设计思路ollamaFastAPI部署后端大模型调用接口
记录一下开源大模型的后端调用接口过程
一、ollama下载及运行
1. ollama安装
ollama是一个本地部署开源大模型的软件#xff0c;可以运行llama、gemma、qwen等国内外开源大模型#xff0c;也可以部署自己训练的大模型
ollama国内地…ollamaFastAPI部署后端大模型调用接口
记录一下开源大模型的后端调用接口过程
一、ollama下载及运行
1. ollama安装
ollama是一个本地部署开源大模型的软件可以运行llama、gemma、qwen等国内外开源大模型也可以部署自己训练的大模型
ollama国内地址
下载安装并运行 ollama图标出现在折叠的任务栏中就算安装成功了
2. 下载并运行大模型
在ollama管理的模型中找到自己想要部署的大模型以qwen2.5-7B大模型为例
ollama启动状态下终端执行如下命令
ollama run qwen2.5如果是首次运行会先下载下载之后就可以运行起来了 此时已经可以在终端访问大模型了
二、后端接口调用
ollama运行的本地大模型端口号为11434可以在线调用
有多种方式可以实现大模型的后端调用只要是后端语言都可以
因为我的后端有其他深度学习模型要调用所以我选用的后端语言是python调用大模型时自然也选择了python接口框架使用的是fastapi
后端调用程序如下
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:HP
# datetime:2024/11/11 8:43
from fastapi import HTTPException, APIRouter
import requests
import json
from .inputData import GenerateRequestbig_model_api APIRouter()# 定义 Ollama API 的 URL
OLLAMA_API_URL http://localhost:11434/v1/completions # Ollama 默认运行在本地 11434 端口big_model_api.post(/llama)
async def generate_text(request: GenerateRequest):# 设置请求头和请求数据headers {Content-Type: application/json}data {model: request.model,prompt: request.prompt,temperature: request.temperature,max_tokens: request.max_tokens,}# 发送请求给 Ollama APIresponse requests.post(OLLAMA_API_URL, headersheaders, datajson.dumps(data))# 检查响应状态并处理结果if response.status_code 200:result response.json()return {generated_text: result.get(choices)[0].get(text)}else:raise HTTPException(status_coderesponse.status_code, detailresponse.text)
这里使用的是分布式路由接口在fastapi的主程序中加入这个名为big_model_api的APIRouter实例就可以在前端访问这个接口了
当然需要配合pydantic定义好请求数据的结构GenerateRequest类定义如下
# 数据模型用于接收请求数据
class GenerateRequest(BaseModel):model: str qwen2.5 # 模型名称prompt: str # 输入的 prompttemperature: float 0.7 # 温度参数默认为 0.7max_tokens: int 1000 # 最大生成的 token 数默认为 200解释一下
默认调用的模型是qwen2.5如果传递其他参数就可以调用其他模型prompt也就是提示词就是前端传给后端的问题temperature不知道有啥用max_token其实就是支持返回多长的字符这个值越大消耗的资源越大
后端服务启动后前端正常传递对话内容请求后端接口就可以调用大模型进行对话了 如果有自己训练的模型也可以参考这种方式部署上线但是ollama如何来调用还需要单独研究