Skip to main content
Use the Go SDK to rank candidate documents by relevance to a query.

Basic Example

package main

import (
	"context"
	"fmt"

	bifrost "github.com/maximhq/bifrost/core"
	"github.com/maximhq/bifrost/core/schemas"
)

func main() {
	client, err := bifrost.Init(context.Background(), schemas.BifrostConfig{
		Account: &MyAccount{},
	})
	if err != nil {
		panic(err)
	}
	defer client.Shutdown()

	request := &schemas.BifrostRerankRequest{
		Provider: schemas.Cohere,
		Model:    "rerank-v3.5",
		Query:    "What is Bifrost?",
		Documents: []schemas.RerankDocument{
			{Text: "Bifrost is an AI gateway that unifies many LLM providers."},
			{Text: "Paris is the capital of France."},
			{Text: "Bifrost exposes an OpenAI-compatible API."},
		},
		Params: &schemas.RerankParameters{
			TopN:            bifrost.Ptr(2),
			ReturnDocuments: bifrost.Ptr(true),
		},
	}

	resp, bfErr := client.RerankRequest(schemas.NewBifrostContext(context.Background(), schemas.NoDeadline), request)
	if bfErr != nil {
		panic(bfErr.Error.Message)
	}

	for _, result := range resp.Results {
		fmt.Printf("index=%d score=%.4f\n", result.Index, result.RelevanceScore)
	}
}

Parameters

  • Provider, Model: provider/model to use for rerank
  • Query: query text
  • Documents: documents to score (text, optional id, meta)
  • Params.TopN: max result count
  • Params.MaxTokensPerDoc: provider-dependent token cap
  • Params.Priority: provider-dependent priority hint
  • Params.ReturnDocuments: include source document in each result
  • Fallbacks: fallback provider/model choices

Response

BifrostRerankResponse includes:
  • Results []RerankResult (index, relevance_score, optional document)
  • Model
  • optional Usage
  • ExtraFields metadata (provider, latency, request_type, etc.)

Next Steps