diff options
Diffstat (limited to 'index.ts')
| -rw-r--r-- | index.ts | 47 |
1 files changed, 35 insertions, 12 deletions
@@ -1,13 +1,36 @@ -import openai from "./src/openai"; -import claude from "./src/claude"; -import gemini from "./src/gemini"; -import generic from "./src/model"; -import type { ChatMessage } from "./src/types"; +// import Openai from "./src/openai"; +import Claude from "./src/claude"; +import Gemini from "./src/gemini"; +import Generic from "./src/generic"; +import type { AIModelAPI, AIModelChoice } from "./src/types"; -export { - openai as OpenAI, - claude as Claude, - gemini as Gemini, - generic as Model, -}; -export type { ChatMessage }; +export type * from "./src/types"; +export * as NLP from "./src/nlp"; + +export default function (choice: AIModelChoice): AIModelAPI { + const api = + "other" in choice + ? new Generic(choice.other) + : choice.name === "deepseek" + ? new Generic({ + baseURL: "https://api.deepseek.com", + apiKey: Bun.env.DEEPSEEK_API_KEY!, + model: "deepseek-chat", + }) + : choice.name === "grok" + ? new Generic({ + baseURL: "https://api.x.ai/v1", + apiKey: Bun.env.GROK_API_KEY!, + model: "grok-2-latest", + }) + : choice.name === "chatgpt" + ? new Generic({ + baseURL: "https://api.openai.com/v1", + apiKey: Bun.env.OPENAI_API_KEY!, + model: "gpt-4o", + }) + : choice.name === "claude" + ? new Claude() + : new Gemini(); + return api; +} |
