AI Gateway Go 0.10.0 源码快照 + 旗舰版需求规划报告
M0-M7 已完成:核心网关(身份/RBAC/TOTP/OIDC/SAML/Provider/配额/路由/内容策略/审计/定价)+ 资源市场(MCP/Skills/数字员工)。 含 22 个 PostgreSQL 迁移、管理端/门户端前端源码、OpenAPI 契约、部署 compose。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import request from '@/utils/http'
|
||||
|
||||
export interface Application { id:string;code:string;name:string;description:string;published_version?:number }
|
||||
export interface Knowledge { id:string;name:string;description:string;document_count:number;chunk_count:number }
|
||||
export interface Tool { id:string;code:string;name:string;description:string;input_schema:Record<string,unknown> }
|
||||
export interface PromptVersion { version:number;content:string;variables:Array<{name:string;label?:string;required:boolean}> }
|
||||
export interface Prompt { id:string;name:string;description:string;category_name:string;tags:string[];favorite:boolean;current?:PromptVersion }
|
||||
export interface Catalog { applications:Application[];knowledge:Knowledge[];tools:Tool[];prompts:Prompt[] }
|
||||
export interface Model { provider_code:string;id:string;owned_by:string }
|
||||
export interface ModelRequest { id:string;provider_code:string;model:string;reason:string;requested_rpm:number;requested_monthly_tokens:number;status:string;decision_note:string;created_at:string }
|
||||
export interface Stats { days:number;requests:number;failed_requests:number;prompt_tokens:number;completion_tokens:number;total_tokens:number;cost_microunits:number;avg_latency_ms?:number }
|
||||
export interface AuditEvent { id:string;request_id:string;provider_code?:string;model?:string;protocol:string;status_code?:number;prompt_tokens?:number;completion_tokens?:number;cost_microunits?:number;latency_ms?:number;recorded_at:string }
|
||||
|
||||
export const fetchCatalog=()=>request.get<Catalog>({url:'/api/v1/portal/catalog'})
|
||||
export const fetchPrompts=(q='')=>request.get<Prompt[]>({url:'/api/v1/portal/prompts',params:{q}})
|
||||
export const setPromptFavorite=(id:string,value:boolean)=>value?request.post({url:`/api/v1/portal/prompts/${id}/favorite`}):request.del({url:`/api/v1/portal/prompts/${id}/favorite`})
|
||||
export const fetchModels=()=>request.get<Model[]>({url:'/api/v1/portal/model-requests/available'})
|
||||
export const fetchModelRequests=()=>request.get<ModelRequest[]>({url:'/api/v1/portal/model-requests'})
|
||||
export const createModelRequest=(params:Pick<ModelRequest,'provider_code'|'model'|'reason'|'requested_rpm'|'requested_monthly_tokens'>)=>request.post<ModelRequest>({url:'/api/v1/portal/model-requests',params})
|
||||
export const fetchStats=(days:number)=>request.get<Stats>({url:'/api/v1/portal/stats',params:{days}})
|
||||
export const fetchLogs=(days:number,limit=50)=>request.get<{items:AuditEvent[]}>({url:'/api/v1/portal/logs',params:{days,limit}})
|
||||
export const changePassword=(params:{old_password:string;new_password:string})=>request.post({url:'/api/v1/portal/password',params})
|
||||
|
||||
|
||||
// --- 资源市场 ---
|
||||
export interface MarketItem { type:string;code:string;name:string;description:string;category_id?:string;category_name:string;tags:string[];department_ids:string[];updated_at:string }
|
||||
export interface MarketplaceCategory { id:string;name:string;description:string;resource_type:string;sort_order:number }
|
||||
export const fetchMarketplace=(params?:{type?:string;category_id?:string;tag?:string;q?:string})=>request.get<MarketItem[]>({url:'/api/v1/portal/marketplace',params})
|
||||
export const fetchMarketplaceCategories=()=>request.get<MarketplaceCategory[]>({url:'/api/v1/portal/marketplace/categories'})
|
||||
export const fetchMarketplaceInstalled=()=>request.get<MarketItem[]>({url:'/api/v1/portal/marketplace/installed'})
|
||||
export const fetchMarketplaceDetail=(type:string,code:string)=>request.get<{item:MarketItem;detail:Record<string,unknown>}>({url:`/api/v1/portal/marketplace/${type}/${code}`})
|
||||
export const marketplaceInstall=(type:string,code:string)=>request.post<{installed:boolean;created:boolean}>({url:`/api/v1/portal/marketplace/${type}/${code}/install`})
|
||||
export const marketplaceUninstall=(type:string,code:string)=>request.del<{installed:boolean}>({url:`/api/v1/portal/marketplace/${type}/${code}/install`})
|
||||
Reference in New Issue
Block a user