From f544c0c6546d57f8476965f6e23d4bdc756235c9 Mon Sep 17 00:00:00 2001 From: Maki Date: Thu, 17 Oct 2024 00:21:03 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20[feat]=20Implement=20model=20cre?= =?UTF-8?q?ation=20for=20multiple=20providers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add getOpenAIModel function for OpenAI models - Implement getBedrockModel function for AWS Bedrock - Update imports to include new SDK components --- app/lib/.server/llm/model.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/lib/.server/llm/model.ts b/app/lib/.server/llm/model.ts index f0d695c..3b7b605 100644 --- a/app/lib/.server/llm/model.ts +++ b/app/lib/.server/llm/model.ts @@ -1,4 +1,6 @@ import { createAnthropic } from '@ai-sdk/anthropic'; +import { createOpenAI } from '@ai-sdk/openai'; +import { createAmazonBedrock } from '@ai-sdk/amazon-bedrock'; export function getAnthropicModel(apiKey: string) { const anthropic = createAnthropic({ @@ -7,3 +9,27 @@ export function getAnthropicModel(apiKey: string) { return anthropic('claude-3-5-sonnet-20240620'); } + +export function getOpenAIModel(model: string, apiKey: string) { + const openai = createOpenAI({ + apiKey, + }); + + return openai(model); +} + +interface AWSCredentials { + accessKeyId: string; + secretAccessKey: string; + region: string; +} + +export function getBedrockModel(modelId: string, credentials: AWSCredentials) { + const bedrock = createAmazonBedrock({ + region: credentials.region, + accessKeyId: credentials.accessKeyId, + secretAccessKey: credentials.secretAccessKey, + }); + + return bedrock(modelId); +}