COGENBAI / cogenbai /config.py
algoscienceacademy's picture
cogenbai
bd91486
Raw
History Blame Contribute Delete
2.29 kB
from dataclasses import dataclass, field
from typing import Dict, Any, List
import json
import os
@dataclass
class CogenConfig:
# Model settings
model_name: str = "codegen-16B-multi"
max_length: int = 2048
temperature: float = 0.8
top_p: float = 0.95
# Language settings
default_language: str = "python"
supported_languages: List[str] = field(default_factory=lambda: [
"python",
"javascript",
"typescript",
"java",
"rust",
"go",
"cpp",
"csharp",
"php",
"ruby",
"kotlin",
"swift",
"dart" # Added dart
])
code_style: Dict[str, str] = field(default_factory=lambda: {
"python": "black",
"javascript": "prettier",
"typescript": "prettier",
"java": "google",
"rust": "rustfmt",
"go": "gofmt",
"cpp": "clang-format",
"csharp": "dotnet-format",
"php": "php-cs-fixer",
"ruby": "rubocop",
"kotlin": "ktlint",
"swift": "swiftformat",
"dart": "dart format" # Added dart formatter
})
language_extensions: Dict[str, List[str]] = field(default_factory=lambda: {
"python": [".py", ".pyi", ".pyx"],
"javascript": [".js", ".jsx", ".mjs"],
"typescript": [".ts", ".tsx"],
"java": [".java"],
"rust": [".rs"],
"go": [".go"],
"cpp": [".cpp", ".hpp", ".cc", ".h"],
"csharp": [".cs"],
"php": [".php"],
"ruby": [".rb"],
"kotlin": [".kt"],
"swift": [".swift"],
"dart": [".dart"] # Added dart extension
})
# Generation settings
add_comments: bool = True
add_type_hints: bool = True
add_docstrings: bool = True
# Performance settings
use_gpu: bool = True
batch_size: int = 1
num_workers: int = 4
@classmethod
def load(cls, config_path: str) -> 'CogenConfig':
if os.path.exists(config_path):
with open(config_path, 'r') as f:
config_dict = json.load(f)
return cls(**config_dict)
return cls()
def save(self, config_path: str):
with open(config_path, 'w') as f:
json.dump(self.__dict__, f, indent=2)