fix(admin): tune chat params, add Training sidebar link, fix reporting API keys
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 36s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 36s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s
- Reduce chat history from 10 to 6 messages to fit context window - Lower num_predict from 8192 to 2048 for faster responses - Add Training module link to SDK sidebar navigation - Add snake_case to camelCase key transformation for reporting API (Go backend returns snake_case, TypeScript expects camelCase) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,29 @@ import type {
|
||||
|
||||
const BASE_URL = '/api/sdk/v1/reporting'
|
||||
|
||||
/**
|
||||
* Rekursive snake_case -> camelCase Konvertierung fuer API-Responses.
|
||||
* Das Go-Backend liefert snake_case JSON, der TypeScript-Client erwartet camelCase.
|
||||
*/
|
||||
function snakeToCamel(str: string): string {
|
||||
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())
|
||||
}
|
||||
|
||||
function transformKeys(obj: unknown): unknown {
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map(transformKeys)
|
||||
}
|
||||
if (obj !== null && typeof obj === 'object') {
|
||||
return Object.fromEntries(
|
||||
Object.entries(obj as Record<string, unknown>).map(([key, value]) => [
|
||||
snakeToCamel(key),
|
||||
transformKeys(value),
|
||||
])
|
||||
)
|
||||
}
|
||||
return obj
|
||||
}
|
||||
|
||||
async function apiFetch<T>(path: string): Promise<T> {
|
||||
const res = await fetch(`${BASE_URL}${path}`, {
|
||||
headers: {
|
||||
@@ -29,7 +52,8 @@ async function apiFetch<T>(path: string): Promise<T> {
|
||||
throw new Error(error.error || `API Error: ${res.status}`)
|
||||
}
|
||||
|
||||
return res.json()
|
||||
const data = await res.json()
|
||||
return transformKeys(data) as T
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user