Spaces:
Paused
Paused
from fastapi import APIRouter, Request | |
from service_config import ServiceConfig | |
from log import log | |
import json | |
router = APIRouter() | |
service_config = ServiceConfig() | |
service_config.load() | |
def list_projects(): | |
projects = list(service_config.projects.keys()) | |
log("π Listing projects.") | |
return {"projects": projects} | |
async def add_project(request: Request): | |
data = await request.json() | |
project_name = data.get("project_name") | |
if not project_name: | |
return {"error": "Project name required."} | |
if project_name in service_config.projects: | |
return {"error": "Project already exists."} | |
service_config.projects[project_name] = { | |
"project_name": project_name, | |
"project_version": 1, | |
"llm": {}, | |
"intents": [] | |
} | |
with open(service_config.config_path, "w", encoding="utf-8") as f: | |
json.dump({ | |
"config": { | |
"work_mode": service_config.work_mode, | |
"cloud_token": service_config.cloud_token, | |
"system_prompt": service_config.system_prompt, | |
"llm_inference_service_url": service_config.llm_inference_service_url | |
}, | |
"projects": service_config.projects, | |
"apis": service_config.apis | |
}, f, indent=2) | |
log(f"π Added project: {project_name}") | |
return {"message": f"Project {project_name} added."} | |
async def delete_project(request: Request): | |
data = await request.json() | |
project_name = data.get("project_name") | |
if project_name not in service_config.projects: | |
return {"error": "Project not found."} | |
del service_config.projects[project_name] | |
with open(service_config.config_path, "w", encoding="utf-8") as f: | |
json.dump({ | |
"config": { | |
"work_mode": service_config.work_mode, | |
"cloud_token": service_config.cloud_token, | |
"system_prompt": service_config.system_prompt, | |
"llm_inference_service_url": service_config.llm_inference_service_url | |
}, | |
"projects": service_config.projects, | |
"apis": service_config.apis | |
}, f, indent=2) | |
log(f"ποΈ Deleted project: {project_name}") | |
return {"message": f"Project {project_name} deleted."} | |