Files
bifrost/docs/quickstart/go-sdk/reranking.mdx
Beyhan Oğur 880f412e2c first commit
2026-04-26 21:52:23 +03:00

89 lines
2.5 KiB
Plaintext

---
title: "Reranking"
description: "Rerank documents with Bifrost Go SDK using client.RerankRequest."
icon: "book-open-cover"
---
Use the Go SDK to rank candidate documents by relevance to a query.
Provider/model examples:
- Cohere: `Provider: schemas.Cohere`, `Model: "rerank-v3.5"`
- vLLM: `Provider: schemas.VLLM`, `Model: "BAAI/bge-reranker-v2-m3"`
## Basic Example
```go
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
For vLLM, set `Provider` to `schemas.VLLM` and use the upstream model ID as `Model` (without the `vllm/` prefix that is used in Gateway HTTP requests).
## Response
`BifrostRerankResponse` includes:
- `Results []RerankResult` (`index`, `relevance_score`, optional `document`)
- `Model`
- optional `Usage`
- `ExtraFields` metadata (`provider`, `latency`, `request_type`, etc.)
## Next Steps
- **[Streaming Responses](./streaming)** - Real-time response processing
- **[Tool Calling](./tool-calling)** - Enable AI to use external functions
- **[Multimodal AI](./multimodal)** - Process images and multimedia content
- **[Core Features](../../features/)** - Advanced Bifrost capabilities