cortexdb-client 0.2.0

Typed gRPC client for CortexDB (AI memory + knowledge graph sidecar)
Documentation
syntax = "proto3";
package cortexdb.v1;
option go_package = "github.com/liliang-cn/cortexdb/v2/pkg/rpc/v1;rpcv1";

import "cortexdb/v1/common.proto";

message InsertGraphDocumentRequest {
  string id = 1;
  string title = 2;
  string content = 3;
  map<string, string> metadata = 4;
  // ingest options (GraphRAGIngestOptions minus Extractor)
  string collection = 5;
  int32 chunk_size = 6;
  int32 chunk_overlap = 7;
}

message InsertGraphDocumentResponse {
  string document_node_id = 1;
  repeated string chunk_node_ids = 2;
  repeated string entity_node_ids = 3;
}

message SearchGraphRagRequest {
  string query = 1;
  string collection = 2;
  int32 top_k = 3;
  int32 max_hops = 4;
  int32 max_related_chunks = 5;
  int32 max_context_chunks = 6;
  int32 max_context_chars = 7;
  int32 per_document_limit = 8;
  bool rerank = 9;
  bool disable_rerank = 10;
  double diversity_lambda = 11;
  bool disable_graph = 12;
  string retrieval_mode = 13;
  bool graph_light = 14;
  int32 max_expansion_seeds = 15;
  int32 max_traversal_nodes = 16;
  int32 max_entities_per_chunk = 17;
  optional RetrievalPlan plan = 18;
}

message SearchGraphRagResponse {
  string query = 1;
  RetrievalPlan plan = 2;
  RetrievalDecision decision = 3;
  repeated GraphRagChunkResult chunks = 4;
  repeated string entities = 5;
  string context = 6;
}

message InsertTextRequest {
  string id = 1;
  string text = 2;
  map<string, string> metadata = 3;
}
message InsertTextResponse {}

message InsertTextBatchRequest {
  map<string, string> texts = 1;
  map<string, string> metadata = 2;
}
message InsertTextBatchResponse {}

message ScoredText {
  string id = 1;
  string content = 2;
  string doc_id = 3;
  string collection = 4;
  map<string, string> metadata = 5;
  double score = 6;
}

message SearchTextRequest {
  string query = 1;
  string collection = 2;
  int32 top_k = 3;
}
message SearchTextResponse { repeated ScoredText results = 1; }

message HybridSearchTextRequest {
  string query = 1;
  int32 top_k = 2;
}
message HybridSearchTextResponse { repeated ScoredText results = 1; }

service GraphRagService {
  rpc InsertGraphDocument(InsertGraphDocumentRequest) returns (InsertGraphDocumentResponse);
  rpc SearchGraphRag(SearchGraphRagRequest) returns (SearchGraphRagResponse);
  rpc InsertText(InsertTextRequest) returns (InsertTextResponse);
  rpc InsertTextBatch(InsertTextBatchRequest) returns (InsertTextBatchResponse);
  rpc SearchText(SearchTextRequest) returns (SearchTextResponse);
  rpc HybridSearchText(HybridSearchTextRequest) returns (HybridSearchTextResponse);
}