Skip to content

Improvement: Replace dummy embedding with actual OpenAI embedding call in api-service #16

@pragnyanramtha

Description

@pragnyanramtha

Description

The /api/v1/query endpoint uses a dummy embedding function instead of actual embeddings, making semantic search non-functional.

Location

File: backend/api-service/internal/handlers/handlers.go
Lines: 86-93, 202-219

Current Implementation

// For MVP: Placeholder for actual embedding generation
// In production, call embedding API or use local embeddings
embedding, err := qh.generateDummyEmbedding(req.Query)

The generateDummyEmbedding() function generates a deterministic but meaningless embedding based on a simple hash.

Problem

  • Search results are not truly semantic
  • Map iteration (for knowledgeID := range scores) doesn't preserve similarity order
  • Results returned in arbitrary order despite having similarity scores

Suggested Fix

  1. Call OpenAI embedding API (like ai-service does) or use local embedding model
  2. Add embedding config (API key, model) to config/config.go
  3. Return sorted slice from SearchSimilar() instead of map to preserve order
  4. Update SearchByIDs() to maintain similarity ranking

Related Issues

Labels

enhancement, embeddings, backend, priority-high

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions