AI之FastAPI+ollama调用嵌入模型OllamaBgeEmbeddings
以下是对该 FastAPI 代码的逐行解析和详细说明:
代码结构概览
from fastapi import Depends # 导入依赖注入模块def get_embedder():return OllamaBgeEmbeddings(base_url="http://ollama-cluster:11434",timeout=30,max_retries=5)@app.post("/embed")
async def embed_text(text: str,embedder: OllamaBgeEmbeddings = Depends(get_embedder)
):return {"embedding": embedder.embed_query(text)}
逐行代码解析
1. 依赖项定义
def get_embedder():return OllamaBgeEmbeddings(base_url="http://ollama-cluster:11434",timeout=30,max_retries=5)
- 功能:创建并返回一个
OllamaBgeEmbeddings
实例 - 关键参数:
base_url
:Ollama 服务集群地址(可以是负载均衡器地址)timeout=30
:请求超时时间(秒)max_retries=5
:失败请求最大重试次数
- 设计意图:
将嵌入器的初始化逻辑封装为可复用的依赖项,实现配置集中管理
2. 路由定义
@app.post("/embed")
async def embed_text(text: str,embedder: OllamaBgeEmbeddings = Depends(get_embedder)