44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from pydantic import BaseModel
|
|
|
|
|
|
class IndexUpdate(BaseModel):
|
|
base_index_name: str
|
|
base_endpoint_name: str
|
|
qa_index_name: str | None
|
|
qa_endpoint_name: str | None
|
|
firestore_db_name: str | None
|
|
firestore_namespace: str | None
|
|
|
|
|
|
class PromptUpdate(BaseModel):
|
|
prompt_name: str
|
|
new_content: str
|
|
|
|
|
|
class RAGConfig(BaseModel):
|
|
llm_name: str = "gemini-2.0-flash"
|
|
temperature: float = 0.2
|
|
similarity_top_k: int = 5
|
|
retrieval_strategy: str = "auto_merging"
|
|
use_hyde: bool = True
|
|
use_refine: bool = True
|
|
use_node_rerank: bool = True
|
|
use_react: bool = True
|
|
qa_followup: bool = True
|
|
hybrid_retrieval: bool = True
|
|
|
|
|
|
class RAGRequest(RAGConfig):
|
|
query: str = "What were Google's Q1 Earnings?"
|
|
evaluate_response: bool
|
|
eval_model_name: str | None = "gemini-2.0-flash"
|
|
embedding_model_name: str | None = "text-embedding-005"
|
|
|
|
|
|
class EvalRequest(RAGConfig):
|
|
eval_model_name: str = "gemini-2.0-flash"
|
|
embedding_model_name: str | None = "text-embedding-005"
|
|
input_eval_dataset_bucket_uri: str = "test_rag_questions/test_ground_truth.csv"
|
|
bq_eval_results_table_id: str = "eval_results.eval_results_table"
|
|
ragas_metrics: list[str] = ["faithfulness", "answer_relevancy"]
|