From a009c845970e72e9cb92ec2eda318ba6a78b4050 Mon Sep 17 00:00:00 2001 From: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com> Date: Tue, 24 Sep 2024 10:43:31 -0400 Subject: [PATCH] Refactor API --- src/api/index.ts | 16 ++++++++-------- src/api/{ => providers}/anthropic.ts | 10 ++++++++-- src/api/{ => providers}/bedrock.ts | 0 src/api/{ => providers}/gemini.ts | 2 +- src/api/{ => providers}/ollama.ts | 2 +- src/api/{ => providers}/openai-native.ts | 4 ++-- src/api/{ => providers}/openai.ts | 6 +++--- src/api/{ => providers}/openrouter.ts | 4 ++-- src/api/{ => providers}/vertex.ts | 0 src/{utils => api/transform}/gemini-format.ts | 0 src/{utils => api/transform}/o1-format.ts | 0 src/{utils => api/transform}/openai-format.ts | 0 12 files changed, 25 insertions(+), 19 deletions(-) rename src/api/{ => providers}/anthropic.ts (95%) rename src/api/{ => providers}/bedrock.ts (100%) rename src/api/{ => providers}/gemini.ts (98%) rename src/api/{ => providers}/ollama.ts (98%) rename src/api/{ => providers}/openai-native.ts (97%) rename src/api/{ => providers}/openai.ts (95%) rename src/api/{ => providers}/openrouter.ts (99%) rename src/api/{ => providers}/vertex.ts (100%) rename src/{utils => api/transform}/gemini-format.ts (100%) rename src/{utils => api/transform}/o1-format.ts (100%) rename src/{utils => api/transform}/openai-format.ts (100%) diff --git a/src/api/index.ts b/src/api/index.ts index e0e4108..ca8e106 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,13 +1,13 @@ import { Anthropic } from "@anthropic-ai/sdk" import { ApiConfiguration, ModelInfo } from "../shared/api" -import { AnthropicHandler } from "./anthropic" -import { AwsBedrockHandler } from "./bedrock" -import { OpenRouterHandler } from "./openrouter" -import { VertexHandler } from "./vertex" -import { OpenAiHandler } from "./openai" -import { OllamaHandler } from "./ollama" -import { GeminiHandler } from "./gemini" -import { OpenAiNativeHandler } from "./openai-native" +import { AnthropicHandler } from "./providers/anthropic" +import { AwsBedrockHandler } from "./providers/bedrock" +import { OpenRouterHandler } from "./providers/openrouter" +import { VertexHandler } from "./providers/vertex" +import { OpenAiHandler } from "./providers/openai" +import { OllamaHandler } from "./providers/ollama" +import { GeminiHandler } from "./providers/gemini" +import { OpenAiNativeHandler } from "./providers/openai-native" export interface ApiHandlerMessageResponse { message: Anthropic.Messages.Message diff --git a/src/api/anthropic.ts b/src/api/providers/anthropic.ts similarity index 95% rename from src/api/anthropic.ts rename to src/api/providers/anthropic.ts index 804b5f2..1b49a89 100644 --- a/src/api/anthropic.ts +++ b/src/api/providers/anthropic.ts @@ -1,6 +1,12 @@ import { Anthropic } from "@anthropic-ai/sdk" -import { ApiHandler, ApiHandlerMessageResponse } from "." -import { anthropicDefaultModelId, AnthropicModelId, anthropicModels, ApiHandlerOptions, ModelInfo } from "../shared/api" +import { ApiHandler, ApiHandlerMessageResponse } from "../index" +import { + anthropicDefaultModelId, + AnthropicModelId, + anthropicModels, + ApiHandlerOptions, + ModelInfo, +} from "../../shared/api" export class AnthropicHandler implements ApiHandler { private options: ApiHandlerOptions diff --git a/src/api/bedrock.ts b/src/api/providers/bedrock.ts similarity index 100% rename from src/api/bedrock.ts rename to src/api/providers/bedrock.ts diff --git a/src/api/gemini.ts b/src/api/providers/gemini.ts similarity index 98% rename from src/api/gemini.ts rename to src/api/providers/gemini.ts index 7a3249c..2739345 100644 --- a/src/api/gemini.ts +++ b/src/api/providers/gemini.ts @@ -6,7 +6,7 @@ import { convertAnthropicMessageToGemini, convertAnthropicToolToGemini, convertGeminiResponseToAnthropic, -} from "../utils/gemini-format" +} from "./transform/gemini-format" export class GeminiHandler implements ApiHandler { private options: ApiHandlerOptions diff --git a/src/api/ollama.ts b/src/api/providers/ollama.ts similarity index 98% rename from src/api/ollama.ts rename to src/api/providers/ollama.ts index d70b365..377dd40 100644 --- a/src/api/ollama.ts +++ b/src/api/providers/ollama.ts @@ -2,7 +2,7 @@ import { Anthropic } from "@anthropic-ai/sdk" import OpenAI from "openai" import { ApiHandler, ApiHandlerMessageResponse } from "." import { ApiHandlerOptions, ModelInfo, openAiModelInfoSaneDefaults } from "../shared/api" -import { convertToAnthropicMessage, convertToOpenAiMessages } from "../utils/openai-format" +import { convertToAnthropicMessage, convertToOpenAiMessages } from "./transform/openai-format" export class OllamaHandler implements ApiHandler { private options: ApiHandlerOptions diff --git a/src/api/openai-native.ts b/src/api/providers/openai-native.ts similarity index 97% rename from src/api/openai-native.ts rename to src/api/providers/openai-native.ts index e20ac90..edbeb9b 100644 --- a/src/api/openai-native.ts +++ b/src/api/providers/openai-native.ts @@ -8,8 +8,8 @@ import { OpenAiNativeModelId, openAiNativeModels, } from "../shared/api" -import { convertToAnthropicMessage, convertToOpenAiMessages } from "../utils/openai-format" -import { convertO1ResponseToAnthropicMessage, convertToO1Messages } from "../utils/o1-format" +import { convertToAnthropicMessage, convertToOpenAiMessages } from "./transform/openai-format" +import { convertO1ResponseToAnthropicMessage, convertToO1Messages } from "./transform/o1-format" export class OpenAiNativeHandler implements ApiHandler { private options: ApiHandlerOptions diff --git a/src/api/openai.ts b/src/api/providers/openai.ts similarity index 95% rename from src/api/openai.ts rename to src/api/providers/openai.ts index ce4a3ba..3e21375 100644 --- a/src/api/openai.ts +++ b/src/api/providers/openai.ts @@ -1,8 +1,8 @@ import { Anthropic } from "@anthropic-ai/sdk" import OpenAI, { AzureOpenAI } from "openai" -import { ApiHandler, ApiHandlerMessageResponse } from "." -import { ApiHandlerOptions, ModelInfo, openAiModelInfoSaneDefaults } from "../shared/api" -import { convertToAnthropicMessage, convertToOpenAiMessages } from "../utils/openai-format" +import { ApiHandler, ApiHandlerMessageResponse } from "../index" +import { ApiHandlerOptions, ModelInfo, openAiModelInfoSaneDefaults } from "../../shared/api" +import { convertToAnthropicMessage, convertToOpenAiMessages } from "../transform/openai-format" export class OpenAiHandler implements ApiHandler { private options: ApiHandlerOptions diff --git a/src/api/openrouter.ts b/src/api/providers/openrouter.ts similarity index 99% rename from src/api/openrouter.ts rename to src/api/providers/openrouter.ts index b687b01..31d5af0 100644 --- a/src/api/openrouter.ts +++ b/src/api/providers/openrouter.ts @@ -8,9 +8,9 @@ import { OpenRouterModelId, openRouterModels, } from "../shared/api" -import { convertToAnthropicMessage, convertToOpenAiMessages } from "../utils/openai-format" +import { convertToAnthropicMessage, convertToOpenAiMessages } from "./transform/openai-format" import axios from "axios" -import { convertO1ResponseToAnthropicMessage, convertToO1Messages } from "../utils/o1-format" +import { convertO1ResponseToAnthropicMessage, convertToO1Messages } from "./transform/o1-format" export class OpenRouterHandler implements ApiHandler { private options: ApiHandlerOptions diff --git a/src/api/vertex.ts b/src/api/providers/vertex.ts similarity index 100% rename from src/api/vertex.ts rename to src/api/providers/vertex.ts diff --git a/src/utils/gemini-format.ts b/src/api/transform/gemini-format.ts similarity index 100% rename from src/utils/gemini-format.ts rename to src/api/transform/gemini-format.ts diff --git a/src/utils/o1-format.ts b/src/api/transform/o1-format.ts similarity index 100% rename from src/utils/o1-format.ts rename to src/api/transform/o1-format.ts diff --git a/src/utils/openai-format.ts b/src/api/transform/openai-format.ts similarity index 100% rename from src/utils/openai-format.ts rename to src/api/transform/openai-format.ts