From b87a4912c71c077d92cfa7b69dcfd05652928ac5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9CDaniel=20Griffiths=E2=80=9D?=
 <Danielgriffiths1790@gmail.com>
Date: Wed, 3 Jan 2024 15:51:53 +0000
Subject: [PATCH] fix: schema file restored

---
 semantic_router/schema.py | 43 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 semantic_router/schema.py

diff --git a/semantic_router/schema.py b/semantic_router/schema.py
new file mode 100644
index 00000000..b7a3c9fa
--- /dev/null
+++ b/semantic_router/schema.py
@@ -0,0 +1,43 @@
+from enum import Enum
+
+from pydantic import BaseModel
+from pydantic.dataclasses import dataclass
+
+from semantic_router.encoders import (
+    BaseEncoder,
+    CohereEncoder,
+    OpenAIEncoder,
+)
+
+
+class EncoderType(Enum):
+    HUGGINGFACE = "huggingface"
+    OPENAI = "openai"
+    COHERE = "cohere"
+
+
+class RouteChoice(BaseModel):
+    name: str | None = None
+    function_call: dict | None = None
+
+
+@dataclass
+class Encoder:
+    type: EncoderType
+    name: str | None
+    model: BaseEncoder
+
+    def __init__(self, type: str, name: str | None):
+        self.type = EncoderType(type)
+        self.name = name
+        if self.type == EncoderType.HUGGINGFACE:
+            raise NotImplementedError
+        elif self.type == EncoderType.OPENAI:
+            self.model = OpenAIEncoder(name)
+        elif self.type == EncoderType.COHERE:
+            self.model = CohereEncoder(name)
+        else:
+            raise ValueError
+
+    def __call__(self, texts: list[str]) -> list[list[float]]:
+        return self.model(texts)
-- 
GitLab