jackkuo's picture
add QA
79899c0
"""
RAG request class, used to encapsulate the parameters of RAG requests
"""
from typing import List, Optional
from pydantic import BaseModel, Field
class RagRequest(BaseModel):
"""
RAG request class, used to encapsulate the parameters of RAG requests
"""
query: str = Field(default="", description="Search query")
top_k: int = Field(default=5, ge=1, description="Number of results to return")
search_type: Optional[str] = Field(
default="keyword",
description="Type of search to perform (keyword or advanced), please note that if data_source is not ['pubmed'], this field will be ignored",
)
is_rewrite: Optional[bool] = Field(
default=True, description="Whether the query is a subquery of a larger query"
)
data_source: List[str] = Field(
default=["pubmed"],
description="Data source to search in (e.g., pubmed, web)",
)
pubmed_topk: int = Field(
default=30,
description="Number of results to return from one specific pubmed search, only used when is_rewrite is True",
)
is_rerank: Optional[bool] = Field(
default=True,
description="Whether to use reranker to rerank the results, only used when data_source is ['pubmed']",
)
language: Optional[str] = Field(
default="en", description="Response language (zh/en), default is English"
)