53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#include "dal/PgDal.hpp"
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
static void contract_pgdal_basic() {
|
|
kom::PgDal dal;
|
|
dal.connect("stub://memory");
|
|
auto ns = dal.ensureNamespace("tests");
|
|
static_cast<void>(ns);
|
|
|
|
kom::ItemRow item;
|
|
item.namespace_id = "tests";
|
|
item.text = std::string("example");
|
|
item.tags = {"alpha", "beta"};
|
|
item.id = dal.upsertItem(item);
|
|
|
|
kom::ChunkRow chunk;
|
|
chunk.item_id = item.id;
|
|
chunk.text = "chunk-text";
|
|
auto chunkIds = dal.upsertChunks(std::vector<kom::ChunkRow>{chunk});
|
|
if (!chunkIds.empty()) {
|
|
chunk.id = chunkIds.front();
|
|
}
|
|
|
|
kom::EmbeddingRow embedding;
|
|
embedding.chunk_id = chunk.id;
|
|
embedding.model = "stub-model";
|
|
embedding.dim = 3;
|
|
embedding.vector = {0.1f, 0.2f, 0.3f};
|
|
dal.upsertEmbeddings(std::vector<kom::EmbeddingRow>{embedding});
|
|
|
|
static_cast<void>(dal.searchText("tests", "chunk", 5));
|
|
static_cast<void>(dal.searchVector("tests", embedding.vector, 5));
|
|
static_cast<void>(dal.getItemById(item.id));
|
|
static_cast<void>(dal.hybridSearch(embedding.vector, "stub-model", "tests", "chunk", 5));
|
|
}
|
|
|
|
int main() {
|
|
try {
|
|
contract_pgdal_basic();
|
|
std::cout << "contract_ok\n";
|
|
return 0;
|
|
} catch (const std::exception& ex) {
|
|
std::cerr << "contract_memory failure: " << ex.what() << "\n";
|
|
return 1;
|
|
} catch (...) {
|
|
std::cerr << "contract_memory failure: unknown error\n";
|
|
return 1;
|
|
}
|
|
}
|