Skip to content
Snippets Groups Projects
Commit b83bfc6a authored by “Daniel Griffiths”'s avatar “Daniel Griffiths”
Browse files

refactor: seperate schema files removed

parent 84d40fd8
No related branches found
No related tags found
No related merge requests found
from enum import Enum
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)
from pydantic import BaseModel
class Route(BaseModel):
name: str
utterances: list[str]
description: str | None = None
from pydantic.dataclasses import dataclass
from semantic_router.schemas.route import Route
@dataclass
class SemanticSpace:
id: str
routes: list[Route]
encoder: str = ""
def __init__(self, routes: list[Route] = []):
self.id = ""
self.routes = routes
def add(self, route: Route):
self.routes.append(route)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment