feat: 完成模型库
This commit is contained in:
@@ -1,10 +1,56 @@
|
||||
import type { GetSessionListVO } from './types';
|
||||
import type { GetSessionListVO, ModelApiTypeOption, ModelLibraryDto, ModelLibraryGetListInput, ModelTypeOption, PagedResultDto } from './types';
|
||||
import { del, get, post, put } from '@/utils/request';
|
||||
|
||||
// 获取当前用户的模型列表
|
||||
export function getModelList() {
|
||||
return get<GetSessionListVO[]>('/ai-chat/model').json();
|
||||
}
|
||||
|
||||
// 获取模型库列表(公开接口,无需登录)
|
||||
export function getModelLibraryList(params?: ModelLibraryGetListInput) {
|
||||
const queryParams = new URLSearchParams();
|
||||
if (params?.searchKey) {
|
||||
queryParams.append('SearchKey', params.searchKey);
|
||||
}
|
||||
if (params?.providerName) {
|
||||
queryParams.append('ProviderName', params.providerName);
|
||||
}
|
||||
if (params?.modelType !== undefined) {
|
||||
queryParams.append('ModelType', params.modelType.toString());
|
||||
}
|
||||
if (params?.modelApiType !== undefined) {
|
||||
queryParams.append('ModelApiType', params.modelApiType.toString());
|
||||
}
|
||||
if (params?.isPremiumOnly !== undefined) {
|
||||
queryParams.append('IsPremiumOnly', params.isPremiumOnly.toString());
|
||||
}
|
||||
if (params?.skipCount !== undefined) {
|
||||
queryParams.append('SkipCount', params.skipCount.toString());
|
||||
}
|
||||
if (params?.maxResultCount !== undefined) {
|
||||
queryParams.append('MaxResultCount', params.maxResultCount.toString());
|
||||
}
|
||||
|
||||
const queryString = queryParams.toString();
|
||||
const url = queryString ? `/model?${queryString}` : '/model';
|
||||
|
||||
return get<PagedResultDto<ModelLibraryDto>>(url).json();
|
||||
}
|
||||
|
||||
// 获取供应商列表(公开接口,无需登录)
|
||||
export function getProviderList() {
|
||||
return get<string[]>('/model/provider-list').json();
|
||||
}
|
||||
|
||||
// 获取模型类型选项列表(公开接口,无需登录)
|
||||
export function getModelTypeOptions() {
|
||||
return get<ModelTypeOption[]>('/model/model-type-options').json();
|
||||
}
|
||||
|
||||
// 获取API类型选项列表(公开接口,无需登录)
|
||||
export function getApiTypeOptions() {
|
||||
return get<ModelApiTypeOption[]>('/model/api-type-options').json();
|
||||
}
|
||||
// 申请ApiKey
|
||||
export function applyApiKey() {
|
||||
return post<any>('/token').json();
|
||||
|
||||
@@ -13,3 +13,61 @@ export interface GetSessionListVO {
|
||||
remark?: string;
|
||||
modelId?: string;
|
||||
}
|
||||
|
||||
// 模型类型枚举
|
||||
export enum ModelTypeEnum {
|
||||
Chat = 0,
|
||||
Image = 1,
|
||||
Embedding = 2,
|
||||
PremiumChat = 3,
|
||||
}
|
||||
|
||||
// 模型API类型枚举
|
||||
export enum ModelApiTypeEnum {
|
||||
OpenAi = 0,
|
||||
Claude = 1,
|
||||
}
|
||||
|
||||
// 模型库展示数据
|
||||
export interface ModelLibraryDto {
|
||||
modelId: string;
|
||||
name: string;
|
||||
description?: string;
|
||||
modelType: ModelTypeEnum;
|
||||
modelTypeName: string;
|
||||
modelApiType: ModelApiTypeEnum;
|
||||
modelApiTypeName: string;
|
||||
multiplierShow: number;
|
||||
providerName?: string;
|
||||
iconUrl?: string;
|
||||
isPremium: boolean;
|
||||
}
|
||||
|
||||
// 获取模型库列表查询参数
|
||||
export interface ModelLibraryGetListInput {
|
||||
searchKey?: string;
|
||||
providerName?: string;
|
||||
modelType?: ModelTypeEnum;
|
||||
modelApiType?: ModelApiTypeEnum;
|
||||
isPremiumOnly?: boolean;
|
||||
skipCount?: number;
|
||||
maxResultCount?: number;
|
||||
}
|
||||
|
||||
// 分页结果
|
||||
export interface PagedResultDto<T> {
|
||||
items: T[];
|
||||
totalCount: number;
|
||||
}
|
||||
|
||||
// 模型类型选项
|
||||
export interface ModelTypeOption {
|
||||
label: string;
|
||||
value: number;
|
||||
}
|
||||
|
||||
// API类型选项
|
||||
export interface ModelApiTypeOption {
|
||||
label: string;
|
||||
value: number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user