import { OpenAIEmbeddings } from '@langchain/openai';
import { ZhipuAIEmbeddings } from '@langchain/community/embeddings/zhipuai';
import { MinimaxEmbeddings } from '@langchain/community/embeddings/minimax';
import { OllamaEmbeddings } from '@langchain/community/embeddings/ollama';
import { AlibabaTongyiEmbeddings } from '@langchain/community/embeddings/alibaba_tongyi';

/**
 * 向量化模型，你还可以添加其他向量化模型，https://js.langchain.com/v0.2/docs/integrations/text_embedding
 */
export const EmbeddModel = {
  // OpenAI Embeddings，也适用支持openai api格式的其他向量化模型
  openai: OpenAIEmbeddings,
  // 智谱，https://www.zhipu.ai
  zhipu: ZhipuAIEmbeddings,
  // 通义，https://tongyi.aliyun.com
  tongyi: AlibabaTongyiEmbeddings,
  // minimax，https://www.minimaxi.com
  minimax: MinimaxEmbeddings,
  // ollama，本地大模型，https://ollama.com
  ollama: OllamaEmbeddings,
};

// 向量化类型键
export type EmbeddType = keyof typeof EmbeddModel;
