WeaviateEx.GRPC.Generative (WeaviateEx v0.7.4)

View Source

Builds gRPC GenerativeSearch messages from WeaviateEx generative config.

This module converts the user-friendly generative config into the protobuf format expected by Weaviate's gRPC API.

Examples

# Simple single prompt
config = %{single_prompt: "Summarize this article"}
generative = Generative.build(config)

# With provider configuration
config = %{
  single_prompt: "Summarize",
  provider: :openai,
  model: "gpt-4",
  temperature: 0.7
}
generative = Generative.build_with_provider(config)

Summary

Functions

Builds a gRPC GenerativeSearch message from a simple config map.

Builds a gRPC GenerativeSearch message with provider configuration.

Extracts single generative results from a list of search results.

Parses a generative result from a gRPC search reply.

Types

config()

@type config() :: %{
  optional(:single_prompt) => String.t(),
  optional(:grouped_task) => String.t(),
  optional(:grouped_properties) => [String.t()],
  optional(:provider) => atom(),
  optional(:model) => String.t(),
  optional(:temperature) => float(),
  optional(:max_tokens) => integer(),
  optional(:top_p) => float(),
  optional(:top_k) => integer(),
  optional(:debug) => boolean()
}

generative_result()

@type generative_result() :: %{
  optional(:grouped_result) => String.t() | nil,
  optional(:single_results) => [String.t()]
}

Functions

build(config)

@spec build(config() | nil) :: struct() | nil

Builds a gRPC GenerativeSearch message from a simple config map.

Returns nil for nil input. This is the basic version that uses deprecated fields for backward compatibility.

build_with_provider(config)

@spec build_with_provider(config() | nil) :: struct() | nil

Builds a gRPC GenerativeSearch message with provider configuration.

This version uses the new Single/Grouped message structure with provider-specific queries.

extract_single_results(results)

@spec extract_single_results([map()]) :: [String.t()]

Extracts single generative results from a list of search results.

parse_generative_result(reply)

@spec parse_generative_result(map()) :: generative_result()

Parses a generative result from a gRPC search reply.