-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
151 lines (132 loc) · 3.7 KB
/
Copy pathpyproject.toml
File metadata and controls
151 lines (132 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "vakra-benchmark"
version = "1.0"
description = "Tool-Calling Agent Benchmark"
readme = "README.md"
requires-python = ">=3.11"
license = {text = ""}
authors = [
{name = "NA"}
]
# Core dependencies required for basic tool calling functionality
dependencies = [
"pandas",
"numpy",
"sqlglot",
"pydantic",
"jinja2",
"dotenv",
"pyyaml",
]
[project.optional-dependencies]
# REST API server dependencies
rest = [
"fastapi",
"uvicorn",
]
# RAG
rag = [
"chromadb",
"sentence-transformers"
]
# LLM agent functionality
agents = [
"langchain>=0.1.0",
"langchain-openai>=0.0.5",
"langgraph>=1.0.9",
"httpx",
"litellm==1.82.6",
"langchain-litellm",
"langchain-ollama",
"sentence-transformers"
]
# MCP server functionality (includes agents)
mcp = [
"mcp>=1.0.0",
"langchain>=0.1.0",
"langchain-openai>=0.0.5",
"httpx",
# WebSocket server dependencies
"fastapi>=0.100.0",
"uvicorn[standard]>=0.23.0",
"websockets>=11.0",
# BPO MCP server dependencies
"fastmcp>=0.2.0",
"loguru",
"pyarrow",
"rapidfuzz",
]
# Setup / init: download data from HuggingFace + manage containers
init = [
"huggingface_hub",
]
# Legacy dependencies (historically included but not actively used)
legacy = [
"ibm-generative-ai",
]
# Phoenix / Arize OTEL tracing (optional — for benchmark_runner.py --phoenix)
phoenix = [
"arize-phoenix-otel",
"openinference-instrumentation-langchain",
]
# All optional dependencies combined
all = [
"vakra-benchmark[rest]",
"vakra-benchmark[agents]",
"vakra-benchmark[mcp]",
"vakra-benchmark[init]",
"vakra-benchmark[legacy]",
"vakra-benchmark[phoenix]",
]
# Development dependencies
dev = [
"black",
"flake8",
"gitpython",
"jupyter",
"pre-commit",
"pytest",
"pytest-cov",
"pytest-pep8",
]
[project.scripts]
slot-filling-mcp = "environment.m3.python_tools.mcp.cli:main"
bpo-mcp = "environment.bpo.mcp.server:start_server"
benchmark-setup = "benchmark_setup:main"
[tool.setuptools.packages.find]
exclude = ["tests*"]
[tool.setuptools.package-data]
"environment.bpo.data" = ["*.parquet", "*.json", "*.csv"]
# Optional: Black configuration
[tool.black]
line-length = 88
target-version = ["py311"]
# Optional: Pytest configuration
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
# Optional: Coverage configuration
[tool.coverage.run]
source = ["environment"]
omit = ["*/tests/*", "*/test_*.py"]
# MCP Server configuration
[tool.mcp.server]
name = "slot-filling-mcp"
description = "MCP Server for slot-filling data manipulation tools"
version = "1.0.0"
command = "slot-filling-mcp"
# Environment variables configuration for MCP server
[tool.mcp.server.env]
SLOT_FILLING_MCP_DATABASE = { description = "Path to SQLite database file", required = true }
SLOT_FILLING_MCP_CACHE_DIR = { description = "Cache directory for IO operations", default = "./mcp_cache" }
SLOT_FILLING_MCP_TABLES = { description = "Comma-separated list of tables to load", required = false }
SLOT_FILLING_MCP_TOOL_UNIVERSE_ID = { description = "Unique ID for this server instance", required = false }
SLOT_FILLING_MCP_SERVER_TYPE = { description = "Server mode: router, slot_filling, or selection", default = "router" }
SLOT_FILLING_MCP_TRANSPORT = { description = "Transport protocol: stdio or websocket", default = "stdio" }
SLOT_FILLING_MCP_HOST = { description = "Host to bind WebSocket server", default = "127.0.0.1" }
SLOT_FILLING_MCP_PORT = { description = "Port for WebSocket server", default = "8000" }