Files
fil/docs/snippets/zig/utils/standalone_embed.md
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

798 B

const std = @import("std");
const kreuzberg = @import("kreuzberg");

// `embed_texts` takes JSON-encoded inputs across the FFI boundary:
// - `texts`: a JSON array of strings
// - `config`: a JSON-encoded `EmbeddingConfig`
// It returns a JSON-encoded 2D float array (one row per input text).
pub fn main() !void {
    const texts_json =
        \\["Hello, world!", "Kreuzberg is fast"]
    ;
    const config_json =
        \\{
        \\  "model": {"type": "preset", "name": "balanced"},
        \\  "normalize": true
        \\}
    ;

    const embeddings_json = try kreuzberg.embed_texts(texts_json, config_json);
    defer std.heap.c_allocator.free(embeddings_json);

    const stdout = std.io.getStdOut().writer();
    try stdout.print("{s}\n", .{embeddings_json});
}