From a1a595a3305727d30e16e856f4faf95980643e1c Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Fri, 13 Feb 2026 03:29:25 +0100 Subject: Simple Vector Database --- vectordb.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 vectordb.h (limited to 'vectordb.h') diff --git a/vectordb.h b/vectordb.h new file mode 100644 index 0000000..3b375bb --- /dev/null +++ b/vectordb.h @@ -0,0 +1,29 @@ +#ifndef VECTORDB_H +#define VECTORDB_H + +#include "llama.h" + +#define VDB_MAX_DOCS 1000 +#define VDB_EMBED_SIZE 768 +#define VDB_MAX_TEXT 1024 + +typedef struct { + float embedding[VDB_EMBED_SIZE]; + char text[VDB_MAX_TEXT]; +} VectorDoc; + +typedef struct { + VectorDoc docs[VDB_MAX_DOCS]; + int count; + struct llama_context *embed_ctx; +} VectorDB; + +void vdb_init(VectorDB *db, struct llama_context *embed_ctx); +void vdb_free(VectorDB *db); + +void vdb_add_document(VectorDB *db, const char *text); + +void vdb_embed_query(VectorDB *db, const char *text, float *out_embedding); +void vdb_search(VectorDB *db, float *query_embedding, int top_k, int *results); + +#endif -- cgit v1.2.3