feat(v2): 补齐模型连接与会议反馈闭环并完成真实模拟联调
This commit is contained in:
@@ -5,7 +5,7 @@ from fastapi import APIRouter, Depends, HTTPException, Request
|
||||
from fastapi.responses import JSONResponse, Response
|
||||
from api.risk_agent_access import authorize, check_project
|
||||
from api.project_assistant import enabled
|
||||
from contracts.lease_library import QueryInput, SelectionInput, ExtractionInput, PackageInput
|
||||
from contracts.lease_library import QueryInput, SelectionInput, ExtractionInput, PackageInput, ModelSettingsInput
|
||||
from services.project_assistant import ProjectAssistantService
|
||||
from services import assistant_store as store, component_registry as registry
|
||||
from services import lease_case_library as library, lease_extraction, skill_packages
|
||||
@@ -212,3 +212,42 @@ def plan_components(plan_id: str, project_id: str, request: Request):
|
||||
return {'plan': frozen['plan'], 'skills': frozen['skills'], 'rules': frozen['rules'],
|
||||
'cards': frozen.get('legacy_cards', []), 'content_hash': frozen['content_hash']}
|
||||
return translate(action)
|
||||
|
||||
@router.get('/model-settings')
|
||||
def model_status(request: Request):
|
||||
guard(request, True)
|
||||
from services import model_settings
|
||||
return model_settings.status()
|
||||
|
||||
@router.put('/model-settings')
|
||||
def save_model_settings(payload: ModelSettingsInput, request: Request):
|
||||
actor=guard(request, True)
|
||||
from services import model_settings
|
||||
try:
|
||||
result=model_settings.save(payload.endpoint,payload.name,payload.api_key)
|
||||
except ValueError as exc:
|
||||
code=str(exc)
|
||||
message='模型由环境配置管理,请联系部署管理员修改' if code=='MODEL_ENV_LOCKED' else '模型设置不合法,请使用受信地址和有效模型名称'
|
||||
return JSONResponse(status_code=409 if code=='MODEL_ENV_LOCKED' else 422,content={'error':{'code':code,'message':message}})
|
||||
with service().connect() as db:
|
||||
store.event(db,'','model.settings_updated',actor,{'managed_by':result['managed_by']})
|
||||
return result
|
||||
|
||||
@router.post('/model-settings/probe')
|
||||
def probe_model(request: Request):
|
||||
actor=guard(request, True)
|
||||
from services import model_settings
|
||||
result=model_settings.probe()
|
||||
with service().connect() as db:
|
||||
store.event(db,'','model.connection_checked',actor,{'ok':result['ok']})
|
||||
return result
|
||||
|
||||
@router.get('/projects/{project_id}/feedback')
|
||||
def meeting_feedback(project_id: str,request: Request):
|
||||
guard(request)
|
||||
def action():
|
||||
from services.meeting_feedback import summarize
|
||||
with service().connect() as db:
|
||||
project(db,request,project_id)
|
||||
return summarize(db,project_id)
|
||||
return translate(action)
|
||||
|
||||
Reference in New Issue
Block a user