File size: 1,396 Bytes
79899c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"""
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"
    )