Skip to content

Commit 7e3ea12

Browse files
committed
feat: add debug route for embedding experiments
1 parent 09cccde commit 7e3ea12

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

server/api/debug/embedder.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from typing import Annotated
2+
3+
from litestar import Controller, post
4+
from litestar.di import Provide
5+
from litestar.params import Dependency
6+
from litestar.status_codes import HTTP_200_OK
7+
8+
from server.dependencies import embedder_model
9+
from server.features.embeddings import Embedder
10+
from server.schemas.v1 import Embedding
11+
12+
13+
class EmbeddingController(Controller):
14+
"""
15+
Summary
16+
-------
17+
Litestar controller for embedding-related debug endpoints
18+
"""
19+
20+
path = '/embedding'
21+
dependencies = {'embedder': Provide(embedder_model)}
22+
23+
@post(status_code=HTTP_200_OK, sync_to_thread=True)
24+
def generate(
25+
self,
26+
embedder: Annotated[Embedder, Dependency()],
27+
data: Embedding,
28+
encode_query: bool = False,
29+
) -> float:
30+
"""
31+
Summary
32+
-------
33+
an endpoint for generating text directly from the LLM model
34+
"""
35+
instruction_embedding = (
36+
embedder.encode_query(data.instruction) if encode_query else embedder.encode_normalise(data.instruction)
37+
)
38+
39+
return float(instruction_embedding @ embedder.encode_normalise(data.text).T)

server/schemas/v1/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from server.schemas.v1.benchmark import Benchmark as Benchmark
22
from server.schemas.v1.chat import Chat as Chat
3+
from server.schemas.v1.embedding import Embedding as Embedding
34
from server.schemas.v1.files import Files as Files
45
from server.schemas.v1.query import Query as Query

server/schemas/v1/embedding.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from msgspec import Struct
2+
3+
4+
class Embedding(Struct):
5+
"""
6+
Summary
7+
-------
8+
the response schema on embedding
9+
10+
Attributes
11+
----------
12+
instruction (str) : the instruction
13+
text (str) : the text to compare similarity
14+
"""
15+
16+
instruction: str
17+
text: str

0 commit comments

Comments
 (0)