GFiaMon's picture
app docker version init commit
8c85b97
# config.py
import os
from dotenv import load_dotenv
import torch
import warnings
warnings.filterwarnings("ignore", message="torchaudio._backend.list_audio_backends has been deprecated")
# warnings.filterwarnings("ignore", message="Model was trained with.*Bad things might happen")
warnings.filterwarnings("ignore", message="std(): degrees of freedom is <= 0")
load_dotenv()
class Config:
# API Keys
HUGGINGFACE_TOKEN = os.getenv("HUGGINGFACE_TOKEN")
PINECONE_API_KEY = os.getenv("PINECONE_API_KEY")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
MODEL_NAME = "gpt-3.5-turbo"
METADATA_MODEL = "gpt-4o-mini" # Cheaper model for metadata extraction
# # Zoom API Settings
# ZOOM_CLIENT_ID = os.getenv("ZOOM_CLIENT_ID")
# ZOOM_CLIENT_SECRET = os.getenv("ZOOM_CLIENT_SECRET")
# ZOOM_ACCOUNT_ID = os.getenv("ZOOM_ACCOUNT_ID")
# ZOOM_WEBHOOK_SECRET = os.getenv("ZOOM_WEBHOOK_SECRET")
# Pinecone Settings
PINECONE_INDEX = "meeting-transcripts-1-dev"
PINECONE_ENVIRONMENT = "us-west1-gcp" # Change to your environment
PINECONE_NAMESPACE = "development" # Default namespace for environment isolation options: "default", "development", "production"
# LangSmith Settings (optional - for tracing and debugging)
LANGCHAIN_TRACING_V2 = os.getenv("LANGCHAIN_TRACING_V2", "false")
LANGCHAIN_API_KEY = os.getenv("LANGCHAIN_API_KEY", "")
LANGCHAIN_PROJECT = os.getenv("LANGCHAIN_PROJECT", "meeting-agent")
# Service Configuration
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
COMPUTE_TYPE = "float16" if DEVICE == "cuda" else "int8"
# Model Settings
WHISPER_MODEL = "small" # Options: tiny, base, small, medium, large-v2, large-v3
# MCP (Model Context Protocol) Settings
ENABLE_MCP = os.getenv("ENABLE_MCP", "false").lower() == "true"
# Read from NOTION_TOKEN (the variable name in .env)
NOTION_TOKEN = os.getenv("NOTION_TOKEN", "")
# MCP Server Configurations
@staticmethod
def get_mcp_servers():
"""Get MCP server configurations."""
if not Config.ENABLE_MCP:
return {}
servers = {}
# 1. Notion MCP Server (if token is present)
if Config.NOTION_TOKEN:
servers["notion"] = {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"transport": "stdio",
"env": {
"NOTION_TOKEN": Config.NOTION_TOKEN
}
}
# 2. World Time MCP Server (Remote HF Space)
# This connects to your Space running app_world_time_mcp_server.py
servers["world_time"] = {
"url": "https://gfiamon-date-time-mpc-server-tool.hf.space/gradio_api/mcp/sse",
"transport": "sse"
}
return servers
# Enable LangSmith tracing if configured
if Config.LANGCHAIN_TRACING_V2 == "true" and Config.LANGCHAIN_API_KEY:
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = Config.LANGCHAIN_API_KEY
os.environ["LANGCHAIN_PROJECT"] = Config.LANGCHAIN_PROJECT
print(f"✅ LangSmith tracing enabled for project: {Config.LANGCHAIN_PROJECT}")