Python API#
Minimal example#
import asyncio
from mtf import MTFConfig, MTFOrchestrator
report = asyncio.run(
MTFOrchestrator(config=MTFConfig()).run(
"Describe your phenomenon here"
)
)
print(report)
With data and images#
import asyncio, numpy as np
from mtf import MTFConfig, MTFOrchestrator
from mtf.toolkit.registry import ToolkitRegistry
# Register experimental data
toolkit = ToolkitRegistry()
toolkit.register_data("B_field", np.linspace(0, 10, 200))
toolkit.register_data("rho_xx", rho_xx_array)
toolkit.register_data("rho_xy", rho_xy_array)
# Optional: register a model function
def drude_model(B, n, mu):
return 1 / (n * 1.6e-19 * mu) / (1 + (mu * B) ** 2)
toolkit.register_model("drude", drude_model)
# Configure
config = MTFConfig(
n_literature=3,
n_fitting=3,
n_reviewer=2,
max_debate_rounds=2,
physics_domains=["condensed_matter"],
)
# Run
orchestrator = MTFOrchestrator(config=config, toolkit=toolkit)
report = asyncio.run(
orchestrator.run(
"Anomalous resistivity plateau at B=3T in 2DEG at T=4K",
images=["rho_vs_B.png", "Hall_plot.png"],
)
)
MTFConfig parameters#
Parameter |
Default |
Description |
|---|---|---|
|
|
Parallel literature agents |
|
|
Parallel fitting agents per hypothesis |
|
|
Parallel reviewer agents |
|
|
Max synthesis iterations per phase |
|
|
Model for literature agents |
|
|
Model for fitting agents |
|
|
Model for reviewer agents |
|
|
Model for debate synthesis |
|
|
Model for image digestion |
|
|
Concurrent fitting agent cap |
|
|
GPD domain list |
|
|
Enable GPD physics verification |