types.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // server/src/types.ts
  2. export enum ModelType {
  3. LLM = 'llm',
  4. EMBEDDING = 'embedding',
  5. RERANK = 'rerank',
  6. VISION = 'vision',
  7. }
  8. // 1. Model Definition (The "Provider" setup)
  9. export interface ModelConfig {
  10. id: string;
  11. name: string; // Display name, e.g. "My DeepSeek"
  12. modelId: string; // The actual string ID sent to API, e.g., "deepseek-chat"
  13. baseUrl?: string; // Base URL for OpenAI compatible API
  14. apiKey?: string; // API key for the service
  15. type: ModelType;
  16. dimensions?: number;
  17. supportsVision?: boolean;
  18. maxInputTokens?: number;
  19. maxBatchSize?: number;
  20. isVectorModel?: boolean;
  21. providerName?: string;
  22. isEnabled?: boolean;
  23. isDefault?: boolean;
  24. }
  25. // 2. Application Logic Settings (The "App" setup)
  26. export interface AppSettings {
  27. // References to ModelConfig IDs
  28. selectedLLMId: string;
  29. selectedEmbeddingId: string; // Default for new uploads, and used for query encoding
  30. selectedRerankId: string;
  31. // Model Hyperparameters
  32. temperature: number;
  33. maxTokens: number;
  34. // Retrieval
  35. enableRerank: boolean;
  36. topK: number;
  37. similarityThreshold: number;
  38. rerankSimilarityThreshold: number;
  39. enableFullTextSearch: boolean;
  40. hybridVectorWeight: number;
  41. // Search Enhancement
  42. enableQueryExpansion: boolean;
  43. enableHyDE: boolean;
  44. // Language
  45. language: string;
  46. }