@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.
86 lines (71 loc) • 1.81 kB
text/typescript
import { AnspireImpl } from './anspire';
import { BochaImpl } from './bocha';
import { BraveImpl } from './brave';
import { ExaImpl } from './exa';
import { FirecrawlImpl } from './firecrawl';
import { GoogleImpl } from './google';
import { JinaImpl } from './jina';
import { KagiImpl } from './kagi';
import { Search1APIImpl } from './search1api';
import { SearXNGImpl } from './searxng';
import { TavilyImpl } from './tavily';
import { SearchServiceImpl } from './type';
/**
* Available search service implementations
*/
export enum SearchImplType {
Anspire = 'anspire',
Bocha = 'bocha',
Brave = 'brave',
Exa = 'exa',
Firecrawl = 'firecrawl',
Google = 'google',
Jina = 'jina',
Kagi = 'kagi',
SearXNG = 'searxng',
Search1API = 'search1api',
Tavily = 'tavily',
}
/**
* Create a search service implementation instance
*/
export const createSearchServiceImpl = (
type: SearchImplType = SearchImplType.SearXNG,
): SearchServiceImpl => {
switch (type) {
case SearchImplType.Anspire: {
return new AnspireImpl();
}
case SearchImplType.Bocha: {
return new BochaImpl();
}
case SearchImplType.Brave: {
return new BraveImpl();
}
case SearchImplType.Exa: {
return new ExaImpl();
}
case SearchImplType.Firecrawl: {
return new FirecrawlImpl();
}
case SearchImplType.Google: {
return new GoogleImpl();
}
case SearchImplType.Jina: {
return new JinaImpl();
}
case SearchImplType.Kagi: {
return new KagiImpl();
}
case SearchImplType.SearXNG: {
return new SearXNGImpl();
}
case SearchImplType.Tavily: {
return new TavilyImpl();
}
default: {
return new Search1APIImpl();
}
}
};
export type { SearchServiceImpl } from './type';