import json
import numpy as np
from bitpolar_agents import BitPolarAgentTool
print("=== BitPolar as OpenAI Agents Tool ===\n")
tool = BitPolarAgentTool(dim=128, bits=4, seed=42)
print("Tool definitions for the agent:")
for defn in tool.definitions():
print(f" - {defn['name']}: {defn['description'][:60]}...")
print("\n--- Simulating agent tool calls ---\n")
vectors = np.random.randn(100, 128).astype(np.float32)
result = tool.handle_call("bitpolar_add", {
"vectors": vectors.tolist(),
"ids": list(range(100)),
"metadata": [{"label": f"item_{i}"} for i in range(100)],
})
print(f"bitpolar_add -> {json.dumps(result, indent=2)}")
query = np.random.randn(128).astype(np.float32)
result = tool.handle_call("bitpolar_search", {
"query": query.tolist(),
"top_k": 5,
})
print(f"\nbitpolar_search -> {json.dumps(result, indent=2)}")
result = tool.handle_call("bitpolar_stats", {})
print(f"\nbitpolar_stats -> {json.dumps(result, indent=2)}")
vec = np.random.randn(128).astype(np.float32)
result = tool.handle_call("bitpolar_compress", {
"vector": vec.tolist(),
})
print(f"\nbitpolar_compress -> bytes={result['compressed_size']}, ratio={result['ratio']:.1f}x")