From b191d828efad649daa966ffe0191d966080fbe40 Mon Sep 17 00:00:00 2001
From: Narendranath Gogineni <narenrockstar1@gmail.com>
Date: Mon, 18 Nov 2024 17:27:20 +0530
Subject: [PATCH 1/3] add support for huggingface on vertex

---
 src/providers/google-vertex-ai/api.ts   |  4 ++++
 src/providers/google-vertex-ai/index.ts | 12 ++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/src/providers/google-vertex-ai/api.ts b/src/providers/google-vertex-ai/api.ts
index 3076e5268..f79777b53 100644
--- a/src/providers/google-vertex-ai/api.ts
+++ b/src/providers/google-vertex-ai/api.ts
@@ -86,6 +86,10 @@ export const GoogleApiConfig: ProviderAPIConfig = {
         return `${projectRoute}/endpoints/openapi/chat/completions`;
       }
 
+      case 'huggingface': {
+        return `${projectRoute}/endpoints/openapi/chat/completions`;
+      }
+
       default:
         return `${projectRoute}`;
     }
diff --git a/src/providers/google-vertex-ai/index.ts b/src/providers/google-vertex-ai/index.ts
index 95e5e01c1..042969cd1 100644
--- a/src/providers/google-vertex-ai/index.ts
+++ b/src/providers/google-vertex-ai/index.ts
@@ -17,6 +17,8 @@ import {
   GoogleImageGenConfig,
   GoogleImageGenResponseTransform,
 } from './imageGenerate';
+import { chatCompleteParams, responseTransformers } from '../open-ai-base';
+import { GOOGLE_VERTEX_AI } from '../../globals';
 
 const VertexConfig: ProviderConfigs = {
   api: VertexApiConfig,
@@ -57,6 +59,16 @@ const VertexConfig: ProviderConfigs = {
             'stream-chatComplete': VertexLlamaChatCompleteStreamChunkTransform,
           },
         };
+      case 'huggingface':
+        return {
+          chatComplete: chatCompleteParams([], {
+            model: 'meta-llama-3-8b-instruct',
+          }),
+          api: GoogleApiConfig,
+          responseTransforms: responseTransformers(GOOGLE_VERTEX_AI, {
+            chatComplete: true,
+          }),
+        };
     }
   },
 };

From cd3d04fad038e02015ae33c35f5ff430b7ac982a Mon Sep 17 00:00:00 2001
From: Narendranath Gogineni <narenrockstar1@gmail.com>
Date: Fri, 22 Nov 2024 17:48:15 +0530
Subject: [PATCH 2/3] changes for vertex dedicated deployments

---
 src/providers/google-vertex-ai/api.ts   | 4 ++--
 src/providers/google-vertex-ai/utils.ts | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/providers/google-vertex-ai/api.ts b/src/providers/google-vertex-ai/api.ts
index f79777b53..486854acd 100644
--- a/src/providers/google-vertex-ai/api.ts
+++ b/src/providers/google-vertex-ai/api.ts
@@ -86,8 +86,8 @@ export const GoogleApiConfig: ProviderAPIConfig = {
         return `${projectRoute}/endpoints/openapi/chat/completions`;
       }
 
-      case 'huggingface': {
-        return `${projectRoute}/endpoints/openapi/chat/completions`;
+      case 'endpoints': {
+        return `${projectRoute}/endpoints/${model}/chat/completions`;
       }
 
       default:
diff --git a/src/providers/google-vertex-ai/utils.ts b/src/providers/google-vertex-ai/utils.ts
index adc897228..ccb9673f2 100644
--- a/src/providers/google-vertex-ai/utils.ts
+++ b/src/providers/google-vertex-ai/utils.ts
@@ -130,7 +130,7 @@ export const getModelAndProvider = (modelString: string) => {
   const modelStringParts = modelString.split('.');
   if (
     modelStringParts.length > 1 &&
-    ['google', 'anthropic', 'meta'].includes(modelStringParts[0])
+    ['google', 'anthropic', 'meta', 'endpoints'].includes(modelStringParts[0])
   ) {
     provider = modelStringParts[0];
     model = modelStringParts.slice(1).join('.');

From 0445b97e4fcfa8093f73986c48e256cf7f2b11be Mon Sep 17 00:00:00 2001
From: Narendranath Gogineni <narenrockstar1@gmail.com>
Date: Fri, 22 Nov 2024 18:38:32 +0530
Subject: [PATCH 3/3] minor fix

---
 src/providers/google-vertex-ai/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/providers/google-vertex-ai/index.ts b/src/providers/google-vertex-ai/index.ts
index 042969cd1..a087fb926 100644
--- a/src/providers/google-vertex-ai/index.ts
+++ b/src/providers/google-vertex-ai/index.ts
@@ -59,7 +59,7 @@ const VertexConfig: ProviderConfigs = {
             'stream-chatComplete': VertexLlamaChatCompleteStreamChunkTransform,
           },
         };
-      case 'huggingface':
+      case 'endpoints':
         return {
           chatComplete: chatCompleteParams([], {
             model: 'meta-llama-3-8b-instruct',