Files
anthonyrawlins 9bdcbe0447 Integrate BACKBEAT SDK and resolve KACHING license validation
Major integrations and fixes:
- Added BACKBEAT SDK integration for P2P operation timing
- Implemented beat-aware status tracking for distributed operations
- Added Docker secrets support for secure license management
- Resolved KACHING license validation via HTTPS/TLS
- Updated docker-compose configuration for clean stack deployment
- Disabled rollback policies to prevent deployment failures
- Added license credential storage (CHORUS-DEV-MULTI-001)

Technical improvements:
- BACKBEAT P2P operation tracking with phase management
- Enhanced configuration system with file-based secrets
- Improved error handling for license validation
- Clean separation of KACHING and CHORUS deployment stacks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 07:56:26 +10:00

62 lines
1.3 KiB
Go

package faiss
/*
#include <faiss/c_api/IndexIVFFlat_c.h>
#include <faiss/c_api/MetaIndexes_c.h>
#include <faiss/c_api/Index_c.h>
#include <faiss/c_api/IndexIVF_c.h>
#include <faiss/c_api/IndexIVF_c_ex.h>
*/
import "C"
import (
"fmt"
)
func (idx *IndexImpl) SetDirectMap(mapType int) (err error) {
ivfPtr := C.faiss_IndexIVF_cast(idx.cPtr())
if ivfPtr == nil {
return fmt.Errorf("index is not of ivf type")
}
if c := C.faiss_IndexIVF_set_direct_map(
ivfPtr,
C.int(mapType),
); c != 0 {
err = getLastError()
}
return err
}
func (idx *IndexImpl) GetSubIndex() (*IndexImpl, error) {
ptr := C.faiss_IndexIDMap2_cast(idx.cPtr())
if ptr == nil {
return nil, fmt.Errorf("index is not a id map")
}
subIdx := C.faiss_IndexIDMap2_sub_index(ptr)
if subIdx == nil {
return nil, fmt.Errorf("couldn't retrieve the sub index")
}
return &IndexImpl{&faissIndex{subIdx}}, nil
}
// pass nprobe to be set as index time option for IVF indexes only.
// varying nprobe impacts recall but with an increase in latency.
func (idx *IndexImpl) SetNProbe(nprobe int32) {
ivfPtr := C.faiss_IndexIVF_cast(idx.cPtr())
if ivfPtr == nil {
return
}
C.faiss_IndexIVF_set_nprobe(ivfPtr, C.size_t(nprobe))
}
func (idx *IndexImpl) GetNProbe() int32 {
ivfPtr := C.faiss_IndexIVF_cast(idx.cPtr())
if ivfPtr == nil {
return 0
}
return int32(C.faiss_IndexIVF_nprobe(ivfPtr))
}