You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI中使用RAGAS的answer_similarity遇embeddings must be set错误求助

解决RAGAS在FastAPI中调用answer_similarity时的embeddings未设置错误

问题出在FastAPI的异步环境下,RAGAS无法自动完成embeddings的初始化,而普通同步脚本中这个自动初始化逻辑能正常运行。解决方法是显式创建embeddings实例,并绑定到AnswerSimilarity度量对象上。

步骤说明

  1. 安装必要依赖:根据选择的embeddings模型安装对应包

    • 若用开源HuggingFace模型:pip install langchain-community sentence-transformers
    • 若用OpenAI嵌入模型:pip install langchain-openai openai
  2. 修改代码,显式初始化embeddings和度量对象
    替换原代码中直接调用answer_similarity的逻辑,改为先初始化embeddings,再创建绑定了embeddings的AnswerSimilarity实例,最后调用其异步score方法。

修改后的完整代码

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from ragas.metrics import AnswerSimilarity
# 选择一种embeddings模型,二选一即可
from langchain_community.embeddings import HuggingFaceEmbeddings  # 开源模型
# from langchain_openai import OpenAIEmbeddings  # OpenAI模型

# 初始化embeddings实例
# 开源模型示例(无需API密钥)
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
# OpenAI模型示例(需替换为你的API密钥)
# embeddings = OpenAIEmbeddings(api_key="your-openai-api-key")

# 创建绑定了embeddings的相似度度量实例
answer_similarity_metric = AnswerSimilarity(embeddings=embeddings)

app = FastAPI()

class Query(BaseModel):
    question: str
    answer: str
    reference_answer: str

@app.post("/similarity/")
async def calculate_similarity(query: Query):
    try:
        # 调用异步score方法计算相似度
        similarity_score = await answer_similarity_metric.score(
            answer=query.answer,
            reference_answer=query.reference_answer,
            question=query.question
        )
        return {"similarity_score": similarity_score}
    except AssertionError as e:
        raise HTTPException(status_code=500, detail=str(e))

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

关键说明

  • 原代码中直接调用的answer_similarity是RAGAS预定义的度量实例,在异步环境下未自动初始化embeddings,因此报错。
  • 显式初始化embeddings后绑定到AnswerSimilarity实例,确保度量对象能正常访问嵌入模型。
  • score方法是异步方法,需用await调用,适配FastAPI的异步路由机制。

内容的提问来源于stack exchange,提问作者FranzF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:54:53