Files
2026-07-13 13:30:30 +08:00

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"]