{
  "name": "github.com/l1fe-labs/forge-go/embed",
  "language": "go",
  "version": "module source snapshot",
  "description": "Go embed package.",
  "manifest": "forge-go/go.mod",
  "manifestSha256": "dee97864d07a64c4c93c79104137d155f0cbae6962945f3b56ceb7744a03cc82",
  "status": "source-reference",
  "registryPublicationVerified": false,
  "route": "/libraries/go/embed",
  "features": {},
  "files": [
    {
      "path": "forge-go/embed/chunking.go",
      "sha256": "8933ba6e32e403d5a9416d68397bba2624f697f2985d45f0c700579514d6942f",
      "artifactSha256": "73ede53c07ec7bea93c1c7b7df11e40ba7a49eeb6dcc5473748e48049c36c5bc",
      "url": "/reference/source/forge-go/embed/chunking.go.txt",
      "declarations": [
        {
          "name": "type TextSplitter interface",
          "line": 15,
          "signature": "type TextSplitter interface",
          "documentation": ""
        },
        {
          "name": "type RecursiveCharacterSplitter struct",
          "line": 32,
          "signature": "type RecursiveCharacterSplitter struct",
          "documentation": ""
        },
        {
          "name": "func NewRecursiveCharacterSplitter(chunkSize, chunkOverlap int) *RecursiveCharacterSplitter",
          "line": 55,
          "signature": "func NewRecursiveCharacterSplitter(chunkSize, chunkOverlap int) *RecursiveCharacterSplitter",
          "documentation": ""
        },
        {
          "name": "func (s *RecursiveCharacterSplitter) Split(text string) []string",
          "line": 76,
          "signature": "func (s *RecursiveCharacterSplitter) Split(text string) []string",
          "documentation": ""
        },
        {
          "name": "type TokenSplitter struct",
          "line": 214,
          "signature": "type TokenSplitter struct",
          "documentation": ""
        },
        {
          "name": "func NewTokenSplitter(maxTokens, tokenOverlap int) *TokenSplitter",
          "line": 229,
          "signature": "func NewTokenSplitter(maxTokens, tokenOverlap int) *TokenSplitter",
          "documentation": ""
        },
        {
          "name": "func (s *TokenSplitter) Split(text string) []string",
          "line": 248,
          "signature": "func (s *TokenSplitter) Split(text string) []string",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/embed/document.go",
      "sha256": "7f9733627461629062d7952cfa871afefb507da3168fdc36e3784dff15a9d83f",
      "artifactSha256": "9aadefe0ede9713d4955be8be48c690f5dad5af38d62065d667c50ea226d296a",
      "url": "/reference/source/forge-go/embed/document.go.txt",
      "declarations": [
        {
          "name": "type Document struct",
          "line": 15,
          "signature": "type Document struct",
          "documentation": ""
        },
        {
          "name": "func NewDocument(content string, metadata json.RawMessage) Document",
          "line": 28,
          "signature": "func NewDocument(content string, metadata json.RawMessage) Document",
          "documentation": ""
        },
        {
          "name": "type DocumentLoader interface",
          "line": 41,
          "signature": "type DocumentLoader interface",
          "documentation": ""
        },
        {
          "name": "type TextLoader struct",
          "line": 52,
          "signature": "type TextLoader struct",
          "documentation": ""
        },
        {
          "name": "func NewTextLoader(text string, metadata json.RawMessage) *TextLoader",
          "line": 61,
          "signature": "func NewTextLoader(text string, metadata json.RawMessage) *TextLoader",
          "documentation": ""
        },
        {
          "name": "func (l *TextLoader) Load(_ context.Context) ([]Document, error)",
          "line": 71,
          "signature": "func (l *TextLoader) Load(_ context.Context) ([]Document, error)",
          "documentation": ""
        },
        {
          "name": "type JsonLoader struct",
          "line": 84,
          "signature": "type JsonLoader struct",
          "documentation": ""
        },
        {
          "name": "func NewJsonLoader(data, contentField string) *JsonLoader",
          "line": 98,
          "signature": "func NewJsonLoader(data, contentField string) *JsonLoader",
          "documentation": ""
        },
        {
          "name": "func (l *JsonLoader) Load(_ context.Context) ([]Document, error)",
          "line": 111,
          "signature": "func (l *JsonLoader) Load(_ context.Context) ([]Document, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/embed/embed.go",
      "sha256": "c1ff9ff84ecd9fc5122d4b29a9ec40a77f5671b102a2635ef56c88138b560740",
      "artifactSha256": "dd1a664e8e275bae90ed35b8779e80b30e70fd90cab9b24ba4e95c9682e705c8",
      "url": "/reference/source/forge-go/embed/embed.go.txt",
      "declarations": [
        {
          "name": "type EmbeddingProvider interface",
          "line": 14,
          "signature": "type EmbeddingProvider interface",
          "documentation": ""
        },
        {
          "name": "type EmbeddingResult struct",
          "line": 34,
          "signature": "type EmbeddingResult struct",
          "documentation": ""
        },
        {
          "name": "func Embed(ctx context.Context, provider EmbeddingProvider, text string) (*EmbeddingResult, error)",
          "line": 62,
          "signature": "func Embed(ctx context.Context, provider EmbeddingProvider, text string) (*EmbeddingResult, error)",
          "documentation": ""
        },
        {
          "name": "func EmbedMany(ctx context.Context, provider EmbeddingProvider, texts []string) (*EmbeddingResult, error)",
          "line": 96,
          "signature": "func EmbedMany(ctx context.Context, provider EmbeddingProvider, texts []string) (*EmbeddingResult, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/embed/error.go",
      "sha256": "44ebe6c150721faf8048d61e61369649176ae48543bf8d1210b169202f43b521",
      "artifactSha256": "847b03e8403266c8231fffbd852a5eb9ea3920187bc40017438e7064c715069d",
      "url": "/reference/source/forge-go/embed/error.go.txt",
      "declarations": [
        {
          "name": "type ErrKind string",
          "line": 17,
          "signature": "type ErrKind string\n\nconst (\n// ErrKindModel indicates a model/provider error during embedding or reranking.\nErrKindModel ErrKind;",
          "documentation": ""
        },
        {
          "name": "type EmbedError struct",
          "line": 40,
          "signature": "type EmbedError struct",
          "documentation": ""
        },
        {
          "name": "func (e *EmbedError) Error() string",
          "line": 55,
          "signature": "func (e *EmbedError) Error() string",
          "documentation": ""
        },
        {
          "name": "func (e *EmbedError) Unwrap() error",
          "line": 63,
          "signature": "func (e *EmbedError) Unwrap() error",
          "documentation": ""
        },
        {
          "name": "func (e *EmbedError) Is(target error) bool",
          "line": 68,
          "signature": "func (e *EmbedError) Is(target error) bool",
          "documentation": ""
        },
        {
          "name": "func NewModelError(model, message string, cause error) *EmbedError",
          "line": 99,
          "signature": "func NewModelError(model, message string, cause error) *EmbedError",
          "documentation": ""
        },
        {
          "name": "func NewDimensionMismatchError(expected, got int) *EmbedError",
          "line": 113,
          "signature": "func NewDimensionMismatchError(expected, got int) *EmbedError",
          "documentation": ""
        },
        {
          "name": "func NewEmptyInputError(operation string) *EmbedError",
          "line": 129,
          "signature": "func NewEmptyInputError(operation string) *EmbedError",
          "documentation": ""
        },
        {
          "name": "func NewStoreError(operation, message string, cause error) *EmbedError",
          "line": 142,
          "signature": "func NewStoreError(operation, message string, cause error) *EmbedError",
          "documentation": ""
        },
        {
          "name": "func NewChunkingError(message string) *EmbedError",
          "line": 156,
          "signature": "func NewChunkingError(message string) *EmbedError",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/embed/rerank.go",
      "sha256": "06f806b3f84708c795a6eea046478d2716e7a026a52b9177cc1638c7494b7f40",
      "artifactSha256": "477d301f0d4a67e3eac433d614eb0b0cc25bad187589c923b7be03f239ef0e81",
      "url": "/reference/source/forge-go/embed/rerank.go.txt",
      "declarations": [
        {
          "name": "type Reranker interface",
          "line": 15,
          "signature": "type Reranker interface",
          "documentation": ""
        },
        {
          "name": "type RerankResult struct",
          "line": 30,
          "signature": "type RerankResult struct",
          "documentation": ""
        },
        {
          "name": "type EmbeddingReranker struct",
          "line": 45,
          "signature": "type EmbeddingReranker struct",
          "documentation": ""
        },
        {
          "name": "func NewEmbeddingReranker(provider EmbeddingProvider) *EmbeddingReranker",
          "line": 50,
          "signature": "func NewEmbeddingReranker(provider EmbeddingProvider) *EmbeddingReranker",
          "documentation": ""
        },
        {
          "name": "func (r *EmbeddingReranker) Rerank(ctx context.Context, query string, documents []string, topK int) ([]RerankResult, error)",
          "line": 70,
          "signature": "func (r *EmbeddingReranker) Rerank(ctx context.Context, query string, documents []string, topK int) ([]RerankResult, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/embed/similarity.go",
      "sha256": "2a3788c615f4417ac391026e92ef50ee4e0c35e53e6c1cb69ee27095a4db6ad5",
      "artifactSha256": "ea363c5565d46ca8072366160482b63af130bee1917b3b515ecd96895e507447",
      "url": "/reference/source/forge-go/embed/similarity.go.txt",
      "declarations": [
        {
          "name": "func CosineSimilarity(a, b []float64) (float64, error)",
          "line": 22,
          "signature": "func CosineSimilarity(a, b []float64) (float64, error)",
          "documentation": ""
        },
        {
          "name": "func EuclideanDistance(a, b []float64) (float64, error)",
          "line": 61,
          "signature": "func EuclideanDistance(a, b []float64) (float64, error)",
          "documentation": ""
        },
        {
          "name": "func DotProduct(a, b []float64) (float64, error)",
          "line": 94,
          "signature": "func DotProduct(a, b []float64) (float64, error)",
          "documentation": ""
        }
      ]
    },
    {
      "path": "forge-go/embed/vector_store.go",
      "sha256": "0c4df1e6d1649ef202c3eaee6c2231a472647d547b212415a562562032004f8d",
      "artifactSha256": "b3ab6870ed5da40b90bb7bbf0191b63e097f48b5af99e1289e5e7840d0831af3",
      "url": "/reference/source/forge-go/embed/vector_store.go.txt",
      "declarations": [
        {
          "name": "type VectorStore interface",
          "line": 17,
          "signature": "type VectorStore interface",
          "documentation": ""
        },
        {
          "name": "type VectorEntry struct",
          "line": 43,
          "signature": "type VectorEntry struct",
          "documentation": ""
        },
        {
          "name": "type SearchResult struct",
          "line": 55,
          "signature": "type SearchResult struct",
          "documentation": ""
        },
        {
          "name": "type InMemoryVectorStore struct",
          "line": 70,
          "signature": "type InMemoryVectorStore struct",
          "documentation": ""
        },
        {
          "name": "func NewInMemoryVectorStore() *InMemoryVectorStore",
          "line": 76,
          "signature": "func NewInMemoryVectorStore() *InMemoryVectorStore",
          "documentation": ""
        },
        {
          "name": "func (s *InMemoryVectorStore) Insert(_ context.Context, entry VectorEntry) error",
          "line": 84,
          "signature": "func (s *InMemoryVectorStore) Insert(_ context.Context, entry VectorEntry) error",
          "documentation": ""
        },
        {
          "name": "func (s *InMemoryVectorStore) Search(_ context.Context, query []float64, topK int) ([]SearchResult, error)",
          "line": 106,
          "signature": "func (s *InMemoryVectorStore) Search(_ context.Context, query []float64, topK int) ([]SearchResult, error)",
          "documentation": ""
        },
        {
          "name": "func (s *InMemoryVectorStore) Delete(_ context.Context, id string) error",
          "line": 142,
          "signature": "func (s *InMemoryVectorStore) Delete(_ context.Context, id string) error",
          "documentation": ""
        },
        {
          "name": "func (s *InMemoryVectorStore) Len() int",
          "line": 155,
          "signature": "func (s *InMemoryVectorStore) Len() int",
          "documentation": ""
        }
      ]
    }
  ]
}
