Skip to content

Adapter embedders (openaiEmbedder, geminiEmbedder, etc.) #10

@EmersonBraun

Description

@EmersonBraun

Parent PRD

#2

What to build

Add standalone embedder functions to @agentskit/adapters. Each embedder satisfies the embed: (text: string) => MaybePromise<number[]> contract used by RAG. These are separate from the chat adapters — no coupling between chat and embedding.

Embedders: openaiEmbedder, geminiEmbedder, ollamaEmbedder (at minimum). Each takes provider config (apiKey, model) and returns the embed function.

Acceptance criteria

  • openaiEmbedder({ apiKey, model? }) exported from adapters
  • geminiEmbedder({ apiKey, model? }) exported from adapters
  • ollamaEmbedder({ model, baseUrl? }) exported from adapters
  • Each returns (text: string) => Promise<number[]>
  • Contract tests verifying return shape
  • Unit tests with mocked HTTP responses
  • Exported from @agentskit/adapters main entry point
  • Package builds and passes lint

Blocked by

User stories addressed

  • User story 17 (bring your own embedder)
  • User story 18 (adapter-provided embedders)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions