RAG + multi-agent (retrieval, policy-compliance, drafting) support assistant for a fictional shipping company, built in Rust with Qdrant for vector storage and a hand-rolled Anthropic tool-calling client (no Rust pydantic-ai equivalent exists). A deterministic supervisor orchestrates the agents and runs every response through a rule-based guardrail pipeline with an append-only audit log. Includes a 44-example golden dataset (normal/injection/policy- violation/hallucination-bait/out-of-scope) and a regression harness that scores retrieval, generation, and guardrail correctness separately, plus a write-up of the failure modes and trade-offs. Co-Authored-By: Claude Sonnet 5 <[email protected]>
29 lines
755 B
TOML
29 lines
755 B
TOML
[package]
|
|
name = "maritime_assistant"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[lib]
|
|
name = "maritime_assistant"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "maritime-assistant"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.104"
|
|
async-trait = "0.1.92"
|
|
chrono = { version = "0.4.45", features = ["serde"] }
|
|
clap = { version = "4.6.7", features = ["derive"] }
|
|
dotenvy = "0.15.7"
|
|
fastembed = "7.0.1"
|
|
qdrant-client = "1.19.0"
|
|
regex = "1.13.1"
|
|
reqwest = { version = "0.13.5", default-features = false, features = ["json", "rustls"] }
|
|
schemars = "1.2.2"
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
serde_json = "1.0.151"
|
|
tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros", "fs"] }
|
|
uuid = { version = "1.26.1", features = ["v4", "serde"] }
|