| 367 | /// and comprehensive error handling. |
| 368 | #[pymodule] |
| 369 | fn graphbit(m: &Bound<'_, PyModule>) -> PyResult<()> { |
| 370 | // NOTE: We do NOT auto-call init() here anymore. |
| 371 | // Users should call graphbit.init() explicitly to control tracing. |
| 372 | // If they don't call init(), we'll lazily initialize on first use. |
| 373 | |
| 374 | // Core functions |
| 375 | m.add_function(wrap_pyfunction!(init, m)?)?; |
| 376 | m.add_function(wrap_pyfunction!(version, m)?)?; |
| 377 | m.add_function(wrap_pyfunction!(get_system_info, m)?)?; |
| 378 | m.add_function(wrap_pyfunction!(health_check, m)?)?; |
| 379 | m.add_function(wrap_pyfunction!(configure_runtime, m)?)?; |
| 380 | m.add_function(wrap_pyfunction!(shutdown, m)?)?; |
| 381 | |
| 382 | // Document loader classes |
| 383 | m.add_class::<PyDocumentLoaderConfig>()?; |
| 384 | m.add_class::<PyDocumentContent>()?; |
| 385 | m.add_class::<PyDocumentLoader>()?; |
| 386 | |
| 387 | // LLM classes |
| 388 | m.add_class::<LlmConfig>()?; |
| 389 | m.add_class::<LlmClient>()?; |
| 390 | m.add_class::<PyLlmUsage>()?; |
| 391 | m.add_class::<PyFinishReason>()?; |
| 392 | m.add_class::<PyLlmToolCall>()?; |
| 393 | m.add_class::<PyLlmResponse>()?; |
| 394 | |
| 395 | // GuardRail policy config (optional for executor.execute(workflow, policy=...)) |
| 396 | m.add_class::<GuardRailPolicyConfig>()?; |
| 397 | |
| 398 | // Workflow classes |
| 399 | m.add_class::<Node>()?; |
| 400 | m.add_class::<Workflow>()?; |
| 401 | m.add_class::<WorkflowContext>()?; |
| 402 | m.add_class::<WorkflowResult>()?; |
| 403 | m.add_class::<WorkflowStreamIterator>()?; |
| 404 | m.add_class::<Executor>()?; |
| 405 | |
| 406 | // Embedding classes |
| 407 | m.add_class::<EmbeddingConfig>()?; |
| 408 | m.add_class::<EmbeddingClient>()?; |
| 409 | |
| 410 | // Memory classes |
| 411 | m.add_class::<PyMemoryConfig>()?; |
| 412 | m.add_class::<MemoryClient>()?; |
| 413 | m.add_class::<PyMemory>()?; |
| 414 | m.add_class::<PyScoredMemory>()?; |
| 415 | m.add_class::<PyMemoryHistory>()?; |
| 416 | |
| 417 | // Text splitter classes |
| 418 | m.add_class::<TextSplitterConfig>()?; |
| 419 | m.add_class::<TextChunk>()?; |
| 420 | m.add_class::<CharacterSplitter>()?; |
| 421 | m.add_class::<TokenSplitter>()?; |
| 422 | m.add_class::<SentenceSplitter>()?; |
| 423 | m.add_class::<RecursiveSplitter>()?; |
| 424 | m.add_class::<text_splitter::splitter::TextSplitter>()?; |
| 425 | |
| 426 | // Tool system classes |