File tree Expand file tree Collapse file tree
services/copilot/embedding Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import consola from "consola"
2+ import { Hono } from "hono"
3+ import { FetchError } from "ofetch"
4+
5+ import type { EmbeddingRequest } from "~/services/copilot/embedding/types"
6+
7+ import { embedding } from "~/services/copilot/embedding/service"
8+
9+ export const embeddingRoutes = new Hono ( )
10+
11+ embeddingRoutes . post ( "/" , async ( c ) => {
12+ try {
13+ const embeddings = await embedding ( await c . req . json < EmbeddingRequest > ( ) )
14+ return c . json ( embeddings )
15+ } catch ( error ) {
16+ if ( error instanceof FetchError ) {
17+ consola . error ( `Request failed: ${ error . message } ` , error . response ?. _data )
18+ }
19+ throw error
20+ }
21+ } )
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import { cors } from "hono/cors"
33import { logger } from "hono/logger"
44
55import { completionRoutes } from "./routes/chat-completions/route"
6+ import { embeddingRoutes } from "./routes/embeddings/route"
67import { modelRoutes } from "./routes/models/route"
78
89export const server = new Hono ( )
@@ -14,7 +15,9 @@ server.get("/", (c) => c.text("Server running"))
1415
1516server . route ( "/chat/completions" , completionRoutes )
1617server . route ( "/models" , modelRoutes )
18+ server . route ( "/embeddings" , embeddingRoutes )
1719
1820// Compatibility with tools that expect v1/ prefix
1921server . route ( "/v1/chat/completions" , completionRoutes )
2022server . route ( "/v1/models" , modelRoutes )
23+ server . route ( "/v1/embeddings" , embeddingRoutes )
Original file line number Diff line number Diff line change 1+ import type { EmbeddingRequest , EmbeddingResponse } from "./types"
2+
3+ import { copilot } from "../../api-instance"
4+
5+ export const embedding = ( payload : EmbeddingRequest ) =>
6+ copilot < EmbeddingResponse > ( "/embeddings" , {
7+ method : "POST" ,
8+ body : {
9+ ...payload ,
10+ } ,
11+ } )
Original file line number Diff line number Diff line change 1+ export interface EmbeddingRequest {
2+ input : string | Array < string >
3+ model : string
4+ }
5+
6+ export interface Embedding {
7+ object : string
8+ embedding : Array < number >
9+ index : number
10+ }
11+
12+ export interface EmbeddingResponse {
13+ object : string
14+ data : Array < Embedding >
15+ model : string
16+ usage : {
17+ prompt_tokens : number
18+ total_tokens : number
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments