package qdrant

  1. Overview
  2. Docs
OCaml client for Qdrant vector database

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.2.0.tar.gz
md5=6bc0d2d10180d2e4a9664a87c75141da
sha512=f00e4cd13ed5cae1a992e42eb0c5e7db0cc898d88dcd9486a4f26a0a2190719d5ed118e45da601886756d2745b5295b76028c46ced0bf35dddb70e76664606e2

doc/qdrant/Qdrant/index.html

Module QdrantSource

Qdrant Vector Database Client for OCaml

Pure OCaml client for Qdrant REST API. Type-safe, declarative, following functional programming principles.

Reference: https://qdrant.tech/documentation/

Configuration

Sourcetype config = {
  1. base_url : string;
  2. api_key : string option;
  3. timeout_s : float;
}
Sourceval default_config : config

Default configuration - localhost:6333, no API key, 30s timeout

Sourceval config_from_env : ?timeout_s:float -> unit -> config

Create config from environment variables. Reads QDRANT_URL and QDRANT_API_KEY from environment.

  • parameter timeout_s

    Optional timeout override (default: 30.0)

Types

Sourcetype distance =
  1. | Cosine
  2. | Euclid
  3. | Dot
  4. | Manhattan

Distance metrics for vector similarity

Sourceval distance_to_string : distance -> string
Sourcetype vector_config = {
  1. size : int;
  2. distance : distance;
}

Vector configuration

Sourcetype point = {
  1. id : string;
  2. vector : float array;
  3. payload : (string * Yojson.Safe.t) list;
}

Point with vector and payload

Sourcetype search_result = {
  1. id : string;
  2. score : float;
  3. payload : Yojson.Safe.t;
  4. vector : float array option;
}

Search result

Sourcetype collection_info = {
  1. status : string;
  2. vectors_count : int;
  3. points_count : int;
  4. segments_count : int;
}

Collection info

Errors

Sourcetype error =
  1. | ConnectionError of string
  2. | ApiError of int * string
    (*

    HTTP status code + message

    *)
  3. | ParseError of string
  4. | ValidationError of string
    (*

    Simple string - sum type overhead removed

    *)
  5. | Timeout
  6. | NotFound of string

Error type - pragmatic, not over-engineered

Sourceval error_to_string : error -> string

Health & Info

Sourceval health : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> unit -> (bool, error) result
Sourceval version : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> unit -> (string, error) result

Collections

Sourceval list_collections : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> unit -> (string list, error) result
Sourceval collection_exists : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> name:string -> unit -> (bool, error) result
Sourceval get_collection : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> name:string -> unit -> (collection_info, error) result
Sourceval create_collection : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> name:string -> vector_config:vector_config -> unit -> (unit, error) result
Sourceval delete_collection : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> name:string -> unit -> (unit, error) result

Points

Sourceval upsert : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> points:point list -> unit -> (int, error) result
Sourceval delete_points : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> ids:string list -> unit -> (unit, error) result
Sourceval get_point : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> id:string -> unit -> (search_result, error) result
Sourceval search_with_filter : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> vector:float array -> limit:int -> filter:Yojson.Safe.t -> ?score_threshold:float -> ?with_vector:bool -> unit -> (search_result list, error) result

Scroll

Sourceval scroll : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> ?limit:int -> ?offset:string -> unit -> (search_result list * string option, error) result
Sourceval count : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> unit -> (int, error) result

Batch Operations

Sourceval batch_upsert : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> points:point list -> ?chunk_size:int -> unit -> (int, error) result

Recommend

Sourceval recommend : sw:Eio.Switch.t -> net:_ Eio.Net.t -> clock:_ Eio.Time.clock -> ?config:config -> collection:string -> positive:string list -> ?negative:string list -> limit:int -> unit -> (search_result list, error) result

Typed Filter API

Sourcemodule Filter : sig ... end