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