contextflow-rl / app /config.py
namish10's picture
Upload app/config.py with huggingface_hub
dd67d34 verified
"""
Configuration for ContextFlow Research
"""
import os
from dataclasses import dataclass, field
from typing import List, Optional
@dataclass
class LLMConfig:
api_key: str = os.environ.get('LLM_API_KEY', '')
base_url: str = os.environ.get('LLM_BASE_URL', 'https://api.openai.com/v1')
model: str = os.environ.get('LLM_MODEL', 'gpt-4-turbo')
temperature: float = 0.7
max_tokens: int = 4000
@dataclass
class SupabaseConfig:
url: str = os.environ.get('SUPABASE_URL', '')
anon_key: str = os.environ.get('SUPABASE_ANON_KEY', '')
service_key: str = os.environ.get('SUPABASE_SERVICE_KEY', '')
@dataclass
class NotionConfig:
api_key: str = os.environ.get('NOTION_API_KEY', '')
database_id: str = os.environ.get('NOTION_DATABASE_ID', '')
@dataclass
class ZepConfig:
api_key: str = os.environ.get('ZEP_API_KEY', '')
@dataclass
class Config:
secret_key: str = os.environ.get('SECRET_KEY', 'contextflow-research-secret-2024')
debug: bool = os.environ.get('DEBUG', 'False').lower() == 'true'
host: str = os.environ.get('HOST', '0.0.0.0')
port: int = int(os.environ.get('PORT', 5001))
llm: LLMConfig = field(default_factory=LLMConfig)
supabase: SupabaseConfig = field(default_factory=SupabaseConfig)
notion: NotionConfig = field(default_factory=NotionConfig)
zep: ZepConfig = field(default_factory=ZepConfig)
upload_folder: str = 'uploads'
max_content_length: int = 100 * 1024 * 1024
allowed_domains: List[str] = field(default_factory=lambda: [
'wikipedia.org', 'khanacademy.org', 'coursera.org', 'edx.org',
'stackoverflow.com', 'developer.mozilla.org', 'geeksforgeeks.org',
'chatgpt.com', 'claude.ai', 'gemini.google', 'chat.google.com',
'github.com', 'huggingface.co', 'arxiv.org', 'arxiv.org',
'youtube.com', ' Khanacademy', ' Brilliant', ' Brilliant.org',
'udemy.com', 'pluralsight.com', 'w3schools.com', 'tutorialspoint.com',
'medium.com', 'dev.to', 'stackoverflow.com', 'stackexchange.com',
'learn.microsoft.com', 'docs.python.org', 'docs.oracle.com',
'pandas.pydata.org', 'numpy.org', 'scikit-learn.org', 'tensorflow.org',
'pytorch.org', 'keras.io', 'huggingface.co/docs', 'langchain.ai'
])
rl_training_interval: int = 100
simulation_rounds: int = 50
graph_batch_size: int = 5