@@ -5,6 +5,15 @@ import { EmbeddingModel } from "effect/unstable/ai"
55import { HttpClient , type HttpClientError , type HttpClientRequest , HttpClientResponse } from "effect/unstable/http"
66
77describe ( "OpenAiEmbeddingModel" , ( ) => {
8+ it . effect ( "model provides dimensions service" , ( ) =>
9+ Effect . gen ( function * ( ) {
10+ const dimensions = yield * EmbeddingModel . Dimensions
11+ assert . strictEqual ( dimensions , 1536 )
12+ } ) . pipe (
13+ Effect . provide ( OpenAiEmbeddingModel . model ( "text-embedding-3-small" , { dimensions : 1536 } ) ) ,
14+ Effect . provideService ( OpenAiClient . OpenAiClient , noopOpenAiClient )
15+ ) )
16+
817 it . effect ( "reorders embeddings by provider index" , ( ) =>
918 Effect . gen ( function * ( ) {
1019 let capturedRequest : HttpClientRequest . HttpClientRequest | undefined
@@ -198,3 +207,10 @@ const getRequestBody = (request: HttpClientRequest.HttpClientRequest) =>
198207 }
199208 return yield * Effect . die ( new Error ( "Expected Uint8Array body" ) )
200209 } )
210+
211+ const noopOpenAiClient : OpenAiClient . Service = {
212+ client : undefined as unknown as OpenAiClient . Service [ "client" ] ,
213+ createResponse : ( ) => Effect . die ( new Error ( "noop" ) ) ,
214+ createResponseStream : ( ) => Effect . die ( new Error ( "noop" ) ) ,
215+ createEmbedding : ( ) => Effect . die ( new Error ( "noop" ) )
216+ }
0 commit comments