Examples
Basic Question-Answering
Simple Query
from taxia import TaxiaEngine
engine = TaxiaEngine()
result = engine.answer("What is the corporate tax filing deadline?")
print(f"Answer: {result.answer}")
print(f"Citations: {result.citations}")
Multiple Queries
queries = [
"What is the comprehensive income tax filing deadline for 2025?",
"Who must file corporate tax returns?",
"What is the standard VAT rate?",
]
for query in queries:
result = engine.answer(query)
print(f"Q: {query}")
print(f"A: {result.answer}\n")
Citations and Audit Trail
Display Citations
result = engine.answer("How to calculate taxable income from salary?")
print(f"Answer: {result.answer}")
print(f"\nLegal Citations:")
for i, citation in enumerate(result.citations, 1):
print(f" {i}. {citation}")
Save Audit Log
import json
result = engine.answer("What is the dividend income tax rate?")
audit_log = {
"trace_id": result.trace_id,
"question": "What is the dividend income tax rate?",
"answer": result.answer,
"citations": result.citations,
"timestamp": result.timestamp,
}
with open("audit_log.json", "w", encoding="utf-8") as f:
json.dump(audit_log, f, ensure_ascii=False, indent=2)
Data Indexing
Index Tax Law Documents
from taxia import TaxiaEngine
engine = TaxiaEngine()
# Index all documents in directory
engine.index_documents("./koreantaxlaw")
# Query indexed data
result = engine.answer("What is the content of Article 27 of the Corporate Tax Act?")
print(result.answer)
Batch Indexing
from pathlib import Path
data_dir = Path("./koreantaxlaw")
for year_dir in sorted(data_dir.iterdir()):
if year_dir.is_dir():
print(f"Indexing {year_dir.name}...")
engine.index_documents(str(year_dir))
REST API Usage
Start API Server
taxia server --host 0.0.0.0 --port 8000
Query API with curl
curl -X POST "http://localhost:8000/ask" \
-H "Content-Type: application/json" \
-d '{
"query": "What is the corporate tax filing deadline?",
"top_k": 3
}'
Query API with Python
import requests
response = requests.post(
"http://localhost:8000/ask",
json={
"query": "What is the corporate tax filing deadline?",
"top_k": 3
}
)
result = response.json()
print(f"Answer: {result['answer']}")
print(f"Citations: {result['citations']}")
Advanced Usage
Custom Configuration
from taxia import TaxiaEngine, TaxiaConfig
config = TaxiaConfig(
llm_provider="anthropic",
llm_model="claude-3-5-sonnet-20241022",
qdrant_host="localhost",
qdrant_port=6333,
top_k=10, # Retrieve more documents
enable_graph_rag=True,
)
engine = TaxiaEngine(config=config)
Graph-RAG Query
# Enable Neo4j for enhanced retrieval
config = TaxiaConfig(
enable_graph_rag=True,
neo4j_uri="bolt://localhost:7687",
neo4j_user="neo4j",
neo4j_password="password",
)
engine = TaxiaEngine(config=config)
# Query will use both vector search and graph relationships
result = engine.answer("What enforcement decrees relate to Article 27 of the Corporate Tax Act?")
print(result.answer)
CLI Examples
Check System Health
View Configuration
Index Documents
taxia index ./koreantaxlaw --collection taxia_2025
Query from CLI
taxia ask "What is the corporate tax filing deadline?"
Start API Server
taxia server --host 0.0.0.0 --port 8000 --reload
JavaScript Examples
- React: https://github.com/xaikorea/taxia/tree/main/src/js/examples/react-app
- Vue 3: https://github.com/xaikorea/taxia/tree/main/src/js/examples/vue-app
- Next.js: https://github.com/xaikorea/taxia/tree/main/src/js/examples/next-js-app
Error Handling
Handle Query Errors
from taxia import TaxiaEngine
from taxia.exceptions import TaxiaError
engine = TaxiaEngine()
try:
result = engine.answer("What is the corporate tax filing deadline?")
print(result.answer)
except TaxiaError as e:
print(f"Error: {e}")
Validate Configuration
from taxia import TaxiaConfig
try:
config = TaxiaConfig(
llm_provider="invalid_provider",
)
except ValueError as e:
print(f"Configuration error: {e}")