123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- (define-module (openai embedding)
- #:use-module (openai api embedding)
- #:use-module (openai client)
- #:use-module (ice-9 match)
- #:use-module (srfi srfi-9)
- #:export (openai-default-embedding-model
- embedding?
- embedding-vector
- openai-embedding))
- (define-once openai-default-embedding-model
- (make-parameter 'text-embedding-ada-002))
- (define-record-type <Embedding>
- (%make-embedding vector)
- embedding?
- (vector embedding-vector))
- (define* (openai-embedding input #:key
- (model (openai-default-embedding-model))
- (user (openai-default-user)))
- "Send an embedding request. Returns an embedding record.
- The INPUT must be a string to be embedded.
- The keyword arguments correspond to the request parameters described
- in the embedding request documentation:
- #:model - A symbol or string identifying the model to use. Defaults
- to `text-embedding-ada-002'.
- #:user - An optional username to associate with this request."
- (let* ((model (if (symbol? model) (symbol->string model) model))
- (request (make-embedding-request model input user))
- (response (send-embedding-request request)))
- (%make-embedding
- (embedding-data-embedding
- (car (embedding-response-data response))))))
|