feat(assistant): 基于聚合结果动态回答并支持对话新增分析列

This commit is contained in:
Jayway Liu
2026-11-01 04:44:48 +00:00
committed by jianwel
parent 42ea166f5d
commit fb9dd2b77e
4 changed files with 880 additions and 93 deletions
+10 -5
View File
@@ -26,7 +26,7 @@ from openpyxl.cell import WriteOnlyCell
from .analysis import METRICS, analyze, context, custom_columns, default_preferences, dimensions, scoped_facts
from .importing import file_digest, profile_file, suggest_mapping, validate_mapping
from .models import AIConfig, Audit, Dataset, Investigation, Membership, Preference, Throttle
from .models import Audit, Dataset, Investigation, Membership, Preference, Throttle
class APIError(Exception):
@@ -133,19 +133,24 @@ def serialize_dataset(ds, detailed=False, restricted=False, raw_access=True):
@endpoint(public=True)
def session(request):
ai_enabled = settings.AI_ENABLED and bool(settings.OPENAI_API_KEY and settings.OPENAI_MODEL)
ai_model = None
ai_provider = None
if request.user.is_authenticated:
try:
cfg = AIConfig.objects.filter(organization=request.user.membership.organization).first()
from .ai import resolve
cfg = resolve(request.user.membership.organization)
ai_enabled = bool(cfg)
if cfg:
ai_enabled = (
cfg.enabled and bool(cfg.model) and (cfg.provider == "local" or bool(cfg.api_key))
)
ai_model, ai_provider = cfg["model"], cfg["provider"]
except Membership.DoesNotExist:
pass
data = {
"csrf": get_token(request),
"user": None,
"ai_enabled": ai_enabled,
"ai_model": ai_model,
"ai_provider": ai_provider,
}
if request.user.is_authenticated:
try: