GodSpeed / agent /config.py
AdithyaVardan's picture
feat: add confluence/slack search tools, chat history, cloud Qdrant support, sync trigger fixes
68af3c5
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=False,
extra="ignore",
)
google_api_key: str = ""
openai_api_key: str = ""
planner_model: str = "gemini-2.0-flash"
synthesiser_model: str = "gemini-2.0-flash"
summariser_model: str = "gemini-2.0-flash"
guardrail_model: str = "gemini-2.0-flash"
qdrant_host: str = "localhost"
qdrant_port: int = 6333
qdrant_url: str = "" # overrides host+port when set (Qdrant Cloud)
qdrant_api_key: str = "" # required for Qdrant Cloud
qdrant_collection: str = "knowledge_base"
qdrant_dense_vector_name: str = "dense"
qdrant_sparse_vector_name: str = "sparse"
qdrant_dense_size: int = 1024
bge_embedding_model: str = "BAAI/bge-m3"
bge_reranker_model: str = "BAAI/bge-reranker-v2-m3"
bm25_index_path: str = "data/bm25_index.pkl"
gliner_model: str = "urchade/gliner_mediumv2.1"
rrf_top_k: int = 50
final_top_k: int = 5
reranker_high_threshold: float = 0.6
reranker_medium_threshold: float = 0.3
live_docs_confidence_threshold: float = 0.5
gemini_max_retries: int = 3
gemini_retry_base_delay: float = 1.0
jira_base_url: str = ""
jira_api_token: str = ""
jira_project_key: str = ""
firecrawl_api_key: str = ""
tavily_api_key: str = ""
# NL-to-SQL tool — direct PostgreSQL connection string.
# e.g. postgresql://postgres:password@db.yourproject.supabase.co:5432/postgres
# Leave empty to disable the sql_query agent gracefully.
# Reads DATABASE_URL or PG_DSN from environment.
database_url: str = ""
pg_dsn: str = ""
sql_max_rows: int = 20
@property
def effective_database_url(self) -> str:
return self.database_url or self.pg_dsn
settings = Settings()