@@ -29,6 +29,7 @@ type OpenAIServer struct {
29
29
ready chan struct {}
30
30
31
31
mockChatCompletion string
32
+ mockEmbeddings []float32
32
33
}
33
34
34
35
func NewOpenAIServer () * OpenAIServer {
@@ -41,6 +42,10 @@ func NewOpenAIServer() *OpenAIServer {
41
42
Reads (openai.ChatCompletionRequest {}).
42
43
Writes (openai.ChatCompletionResponse {}).
43
44
To (s .chatCompletion ))
45
+ ws .Route (ws .POST ("embeddings" ).
46
+ Reads (openai.EmbeddingRequest {}).
47
+ Writes (openai.EmbeddingResponse {}).
48
+ To (s .embeddings ))
44
49
container := restful .NewContainer ()
45
50
container .Add (ws )
46
51
s .httpServer = & http.Server {Handler : container }
@@ -79,6 +84,10 @@ func (s *OpenAIServer) ChatCompletion(mock string) {
79
84
s .mockChatCompletion = mock
80
85
}
81
86
87
+ func (s * OpenAIServer ) Embeddings (embeddings []float32 ) {
88
+ s .mockEmbeddings = embeddings
89
+ }
90
+
82
91
func (s * OpenAIServer ) chatCompletion (req * restful.Request , resp * restful.Response ) {
83
92
var r openai.ChatCompletionRequest
84
93
err := req .ReadEntity (& r )
@@ -94,3 +103,17 @@ func (s *OpenAIServer) chatCompletion(req *restful.Request, resp *restful.Respon
94
103
}},
95
104
})
96
105
}
106
+
107
+ func (s * OpenAIServer ) embeddings (req * restful.Request , resp * restful.Response ) {
108
+ var r openai.EmbeddingRequest
109
+ err := req .ReadEntity (& r )
110
+ if err != nil {
111
+ _ = resp .WriteError (http .StatusBadRequest , err )
112
+ return
113
+ }
114
+ _ = resp .WriteEntity (openai.EmbeddingResponse {
115
+ Data : []openai.Embedding {{
116
+ Embedding : s .mockEmbeddings ,
117
+ }},
118
+ })
119
+ }
0 commit comments