@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
180 lines (163 loc) • 4.03 kB
text/typescript
import { LobeChatPluginManifest } from '@lobehub/chat-plugin-sdk';
import { LobeChatPluginMeta, Meta } from '@lobehub/chat-plugin-sdk/lib/types/market';
import { Locales } from '@/locales/resources';
import { ChatModelCard, ModelProviderCard } from '@/types/llm';
import { MetaData } from '@/types/meta';
import { PageProps } from '@/types/next';
import { LobeAgentSettings } from '@/types/session';
export type DiscoverPageProps<T = string> = PageProps<
{ slug: T; variants: string },
{ hl?: Locales }
>;
export enum AssistantCategory {
Academic = 'academic',
All = 'all',
Career = 'career',
CopyWriting = 'copywriting',
Design = 'design',
Education = 'education',
Emotions = 'emotions',
Entertainment = 'entertainment',
Games = 'games',
General = 'general',
Life = 'life',
Marketing = 'marketing',
Office = 'office',
Programming = 'programming',
Translation = 'translation',
}
export enum PluginCategory {
All = 'all',
GamingEntertainment = 'gaming-entertainment',
LifeStyle = 'lifestyle',
MediaGenerate = 'media-generate',
ScienceEducation = 'science-education',
Social = 'social',
StocksFinance = 'stocks-finance',
Tools = 'tools',
WebSearch = 'web-search',
}
export enum DiscoverTab {
Assistants = 'assistants',
Home = 'home',
Models = 'models',
Plugins = 'plugins',
Providers = 'providers',
}
// TODO 可能需要修改
export interface ExampleTopic {
description: string;
id: string;
title: string;
}
// TODO 服务端接口待补充
export interface DiscoverAssistantItem extends LobeAgentSettings {
author: string;
createdAt: string;
examples?: ExampleTopic[];
homepage: string;
identifier: string;
meta: MetaData & {
category?: AssistantCategory;
};
schemaVersion: 1;
socialData: {
conversations: number;
likes: number;
users: number;
};
suggestions: Omit<DiscoverAssistantItem, 'suggestions' | 'socialData' | 'config'>[];
}
export interface DiscoverModelItem {
createdAt: string;
identifier: string;
meta: Omit<ChatModelCard, 'displayName' | 'deploymentName'> & {
category?: string;
title: string;
};
providers?: string[];
socialData: {
conversations: number;
likes: number;
tokens: number;
};
suggestions: Omit<DiscoverModelItem, 'suggestions' | 'socialData' | 'providers'>[];
}
export interface DiscoverProviderItem {
createdAt: string;
identifier: string;
meta: Omit<ModelProviderCard, 'chatModels' | 'name'> & {
description?: string;
title: string;
};
models: string[];
socialData: {
conversations: number;
likes: number;
users: number;
};
suggestions: Omit<DiscoverProviderItem, 'suggestions' | 'socialData'>[];
}
// TODO 服务端接口待补充
export type DiscoverPlugintem = LobeChatPluginMeta & {
manifest: LobeChatPluginManifest;
meta: Meta & {
category?: PluginCategory;
};
socialData: {
called: number;
executionTime: number;
likes: number;
relatedAssistants: number;
successRate: number;
users: number;
};
suggestions: Omit<DiscoverPlugintem, 'suggestions' | 'socialData' | 'manifest'>[];
};
export enum SortBy {
MostLiked = 'liked',
MostUsed = 'used',
Newest = 'newest',
Oldest = 'oldest',
Recommended = 'recommended',
}
export enum TimePeriod {
All = 'all',
Day = 'day',
Month = 'month',
Week = 'week',
Year = 'year',
}
export enum AuthorRange {
Everyone = 'everyone',
Followed = 'followed',
}
export interface FilterBy {
author?: AuthorRange;
content?: number;
fc?: boolean;
knowledge?: boolean;
plugin?: boolean;
price?: number;
time?: TimePeriod;
token?: number;
vision?: boolean;
}
interface AgentIndexItem {
author: string;
createAt: string;
createdAt: string;
homepage: string;
identifier: string;
meta: {
avatar: string;
category: string;
description: string;
tags: string[];
title: string;
};
}
export interface AgentStoreIndex {
agents: AgentIndexItem[];
schemaVersion: number;
}