97 lines
2.3 KiB
Python
97 lines
2.3 KiB
Python
"""
|
|
Configuration module for Red Mountain Dev Assistant API
|
|
"""
|
|
import os
|
|
from typing import Dict, Any
|
|
|
|
# API Keys from environment variables
|
|
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
|
|
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY", "")
|
|
AZURE_OPENAI_API_KEY = os.getenv("AZURE_OPENAI_API_KEY", "")
|
|
AZURE_OPENAI_ENDPOINT = os.getenv("AZURE_OPENAI_ENDPOINT", "")
|
|
|
|
# Default model configuration
|
|
DEFAULT_MODEL_PROVIDER = os.getenv("MODEL_PROVIDER", "openai")
|
|
DEFAULT_MODEL_NAME = os.getenv("MODEL_NAME", "gpt-4")
|
|
|
|
# Embedder configuration
|
|
DEFAULT_EMBEDDER_TYPE = os.getenv("EMBEDDER_TYPE", "openai")
|
|
|
|
# RAG configuration
|
|
RAG_CONFIG: Dict[str, Any] = {
|
|
"retriever": {
|
|
"top_k": 5,
|
|
"similarity_threshold": 0.7
|
|
},
|
|
"text_splitter": {
|
|
"split_by": "word",
|
|
"chunk_size": 500,
|
|
"chunk_overlap": 100
|
|
}
|
|
}
|
|
|
|
# Repository filters (similar to DeepWiki)
|
|
DEFAULT_EXCLUDED_DIRS = [
|
|
"node_modules",
|
|
".git",
|
|
"__pycache__",
|
|
".venv",
|
|
"venv",
|
|
"dist",
|
|
"build",
|
|
".next",
|
|
"target"
|
|
]
|
|
|
|
DEFAULT_EXCLUDED_FILES = [
|
|
".pyc",
|
|
".pyo",
|
|
".pyd",
|
|
".so",
|
|
".dll",
|
|
".dylib",
|
|
".exe",
|
|
"package-lock.json",
|
|
"yarn.lock"
|
|
]
|
|
|
|
# Server configuration
|
|
API_HOST = os.getenv("API_HOST", "0.0.0.0")
|
|
API_PORT = int(os.getenv("API_PORT", "8001"))
|
|
|
|
# Red Mountain platform specific configuration
|
|
REDMOUNTAIN_API_BASE = os.getenv("REDMOUNTAIN_API_BASE", "")
|
|
REDMOUNTAIN_API_KEY = os.getenv("REDMOUNTAIN_API_KEY", "")
|
|
|
|
|
|
def get_config() -> Dict[str, Any]:
|
|
"""Get complete configuration"""
|
|
return {
|
|
"api_keys": {
|
|
"openai": OPENAI_API_KEY,
|
|
"google": GOOGLE_API_KEY,
|
|
"azure": AZURE_OPENAI_API_KEY,
|
|
},
|
|
"models": {
|
|
"provider": DEFAULT_MODEL_PROVIDER,
|
|
"name": DEFAULT_MODEL_NAME,
|
|
},
|
|
"embedder": {
|
|
"type": DEFAULT_EMBEDDER_TYPE,
|
|
},
|
|
"rag": RAG_CONFIG,
|
|
"filters": {
|
|
"excluded_dirs": DEFAULT_EXCLUDED_DIRS,
|
|
"excluded_files": DEFAULT_EXCLUDED_FILES,
|
|
},
|
|
"server": {
|
|
"host": API_HOST,
|
|
"port": API_PORT,
|
|
},
|
|
"redmountain": {
|
|
"api_base": REDMOUNTAIN_API_BASE,
|
|
"api_key": REDMOUNTAIN_API_KEY,
|
|
}
|
|
}
|
|
|