summaryrefslogtreecommitdiff
path: root/index.ts
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-07-23 02:37:15 +0700
committerpolwex <polwex@sortug.com>2025-07-23 02:37:15 +0700
commit42dd99bfac9777a4ecc6700b87edf26a5c984de6 (patch)
tree031e45d187f45def4b58ad7590d39dec3924600d /index.ts
parent4c6913644b362b28f15b125c2fbe48165f1e048c (diff)
checkpoint
Diffstat (limited to 'index.ts')
-rw-r--r--index.ts47
1 files changed, 35 insertions, 12 deletions
diff --git a/index.ts b/index.ts
index c2fc78e..83545f0 100644
--- a/index.ts
+++ b/index.ts
@@ -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;
+}