rename: data_mart → sage_datamark

This commit is contained in:
yumoqing 2026-07-17 17:20:13 +08:00
parent 4d24094048
commit 8aafb31ef4
11 changed files with 26 additions and 26 deletions

View File

@ -1,4 +1,4 @@
#!/bin/bash
set -e
cd "$(dirname "$0")"
echo "[data_mart] build done"
echo "[sage_datamark] build done"

View File

@ -1,2 +0,0 @@
"""data_mart — Sage 数据集市模块"""
from .init import load_data_mart

View File

@ -1,3 +1,3 @@
#!/bin/bash
# data_mart has no CRUD tables - skip xls2ui
echo "[data_mart] json build skipped (no CRUD)"
# sage_datamark has no CRUD tables - skip xls2ui
echo "[sage_datamark] json build skipped (no CRUD)"

View File

@ -3,10 +3,10 @@ requires = ["setuptools>=61", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "data_mart"
name = "sage_datamark"
version = "0.1.0"
description = "Sage 数据集市 — 模型性能指标、供应商性价比、多维度分析"
requires-python = ">=3.10"
[tool.setuptools.packages.find]
include = ["data_mart*"]
include = ["sage_datamark*"]

View File

@ -0,0 +1,2 @@
"""sage_datamark — Sage 数据集市模块"""
from .init import load_sage_datamark

View File

@ -11,7 +11,7 @@ from appPublic.log import debug, info, exception
from sqlor.dbpools import DBPools
from ahserver.serverenv import ServerEnv
MODULE_NAME = "data_mart"
MODULE_NAME = "sage_datamark"
async def ensure_tables(sor):
@ -129,7 +129,7 @@ async def sync_call_fact(sor, last_sync=None):
ORDER BY lu.use_time
"""
rows = await sor.sqlExe(sql, {'last_sync': last_sync})
info('data_mart ETL: syncing ' + str(len(rows)) + ' rows from ' + last_sync)
info('sage_datamark ETL: syncing ' + str(len(rows)) + ' rows from ' + last_sync)
count = 0
for r in rows:
@ -168,7 +168,7 @@ async def sync_call_fact(sor, last_sync=None):
await sor.C('dm_model_call_fact', ns)
count += 1
info('data_mart ETL: inserted ' + str(count) + ' new rows')
info('sage_datamark ETL: inserted ' + str(count) + ' new rows')
return count
@ -195,7 +195,7 @@ async def aggregate_daily_perf(sor, stat_date=None):
GROUP BY call_date, llmid, model, catelogid, providerid, ownerid, userorgid
"""
rows = await sor.sqlExe(sql, {'stat_date': stat_date})
info('data_mart AGG: aggregating ' + str(len(rows)) + ' groups for ' + stat_date)
info('sage_datamark AGG: aggregating ' + str(len(rows)) + ' groups for ' + stat_date)
for r in rows:
r = DictObject(r)

View File

@ -1,11 +1,11 @@
"""data_mart 模块初始化"""
"""sage_datamark 模块初始化"""
from ahserver.serverenv import ServerEnv
from appPublic.jsonConfig import getConfig
from appPublic.log import debug, exception
from sqlor.dbpools import DBPools
from .etl import sync_call_fact, aggregate_daily_perf, aggregate_provider_cost, ensure_tables
MODULE_NAME = "data_mart"
MODULE_NAME = "sage_datamark"
def get_dbname():
@ -14,7 +14,7 @@ def get_dbname():
async def api_model_perf(sor, params_kw=None):
"""模型性能统计 API — POST /data_mart/api/model_perf.dspy"""
"""模型性能统计 API — POST /sage_datamark/api/model_perf.dspy"""
model = params_kw.get('model') if params_kw else None
stat_date = params_kw.get('date') if params_kw else None
@ -33,7 +33,7 @@ async def api_model_perf(sor, params_kw=None):
async def api_provider_roi(sor, params_kw=None):
"""供应商性价比 API — POST /data_mart/api/provider_roi.dspy"""
"""供应商性价比 API — POST /sage_datamark/api/provider_roi.dspy"""
model = params_kw.get('model') if params_kw else None
stat_date = params_kw.get('date') if params_kw else None
@ -52,7 +52,7 @@ async def api_provider_roi(sor, params_kw=None):
async def api_call_detail(sor, params_kw=None):
"""调用明细 API — POST /data_mart/api/call_detail.dspy"""
"""调用明细 API — POST /sage_datamark/api/call_detail.dspy"""
stat_date = (params_kw or {}).get('date')
userorgid = (params_kw or {}).get('userorgid')
@ -70,9 +70,9 @@ async def api_call_detail(sor, params_kw=None):
return [dict(r) for r in rows]
def load_data_mart():
def load_sage_datamark():
env = ServerEnv()
env.api_model_perf = api_model_perf
env.api_provider_roi = api_provider_roi
env.api_call_detail = api_call_detail
debug("[data_mart] registered API endpoints")
debug("[sage_datamark] registered API endpoints")

View File

@ -1,8 +1,8 @@
#!/usr/bin/env python3
"""data_mart 模块 load_path"""
"""sage_datamark 模块 load_path"""
import os, sys, subprocess
MOD = "data_mart"
MOD = "sage_datamark"
SAGE_ROOT = os.environ.get("SAGE_ROOT", os.path.expanduser("~/sage"))
PYTHON = os.path.join(SAGE_ROOT, "py3", "bin", "python")
SET_PERM = os.path.join(SAGE_ROOT, "set_role_perm.py")

View File

@ -1,5 +1,5 @@
# 模型性能统计 API
env = request._run_ns
async with get_sor_context(env, 'data_mart') as sor:
async with get_sor_context(env, 'sage_datamark') as sor:
rows = await env.api_model_perf(sor, params_kw)
return json.dumps(rows, ensure_ascii=False)

View File

@ -1,5 +1,5 @@
# 供应商性价比 API
env = request._run_ns
async with get_sor_context(env, 'data_mart') as sor:
async with get_sor_context(env, 'sage_datamark') as sor:
rows = await env.api_provider_roi(sor, params_kw)
return json.dumps(rows, ensure_ascii=False)

View File

@ -6,16 +6,16 @@
"widgettype": "MenuItem",
"options": {
"label": "模型性能",
"url": "{{entire_url('/data_mart/index.ui')}}",
"icon": "{{entire_url('/data_mart/imgs/perf.svg')}}"
"url": "{{entire_url('/sage_datamark/index.ui')}}",
"icon": "{{entire_url('/sage_datamark/imgs/perf.svg')}}"
}
},
{
"widgettype": "MenuItem",
"options": {
"label": "供应商性价比",
"url": "{{entire_url('/data_mart/provider_roi.ui')}}",
"icon": "{{entire_url('/data_mart/imgs/roi.svg')}}"
"url": "{{entire_url('/sage_datamark/provider_roi.ui')}}",
"icon": "{{entire_url('/sage_datamark/imgs/roi.svg')}}"
}
}
]