providers: presets for polza/openai/ollama (--provider), keys from env, gpt-5.6-luna default for polza, multimodal heuristic for cloud ids
This commit is contained in:
+31
-5
@@ -37,9 +37,9 @@ from aicc.protocol import SessionInit
|
||||
from aicc.transport.websocket import WebSocketClientTransport
|
||||
from PIL import Image
|
||||
|
||||
from testbed.llm_agent import resolve_provider
|
||||
|
||||
DEFAULT_URL = "ws://127.0.0.1:8765"
|
||||
DEFAULT_BASE_URL = "http://localhost:11434/v1"
|
||||
DEFAULT_MODEL = "gemma4:e2b"
|
||||
|
||||
|
||||
class FrameRecorder:
|
||||
@@ -392,12 +392,26 @@ def main() -> int:
|
||||
help="agent driver (default auto: LLM if reachable, else scripted)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--base-url", default=DEFAULT_BASE_URL, help="OpenAI-compatible endpoint"
|
||||
"--base-url",
|
||||
default=None,
|
||||
help="OpenAI-compatible endpoint (default per --provider)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--model", default=DEFAULT_MODEL, help="model id on the endpoint"
|
||||
"--provider",
|
||||
choices=["polza", "openai", "ollama"],
|
||||
default=None,
|
||||
help="provider preset: endpoint + key from env (POLZA_API_KEY/OPENAI_API_KEY)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--model",
|
||||
default=None,
|
||||
help="model id on the endpoint (default per provider: polza -> openai/gpt-5.6-luna)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--api-key",
|
||||
default=None,
|
||||
help="API key (default: $POLZA_API_KEY / $OPENAI_API_KEY per provider)",
|
||||
)
|
||||
parser.add_argument("--api-key", default="ollama", help="API key for the endpoint")
|
||||
parser.add_argument("--max-steps", type=int, default=60, help="max agent steps")
|
||||
parser.add_argument(
|
||||
"--vision",
|
||||
@@ -429,6 +443,18 @@ def main() -> int:
|
||||
"into this directory, plus demo.gif animation and demo_summary.png",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
try:
|
||||
args.base_url, args.api_key, args.model = resolve_provider(
|
||||
provider=args.provider,
|
||||
base_url=args.base_url,
|
||||
api_key=args.api_key,
|
||||
model=args.model,
|
||||
)
|
||||
if args.provider:
|
||||
print(f"[demo] provider: {args.provider} -> {args.base_url} model: {args.model}")
|
||||
except ValueError as exc:
|
||||
print(f"[demo] {exc}")
|
||||
return 1
|
||||
try:
|
||||
summary = asyncio.run(run_demo(args))
|
||||
except KeyboardInterrupt:
|
||||
|
||||
Reference in New Issue
Block a user