47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import sys
|
|
import argparse
|
|
from agent import Agent
|
|
|
|
def setup_argparse():
|
|
parser = argparse.ArgumentParser(description='Qwen3 Agent CLI')
|
|
parser.add_argument('--model', default='qwen3:32b',
|
|
help='Model identifier (default: qwen3:32b)')
|
|
parser.add_argument('--server', default='http://localhost:11434/v1',
|
|
help='Model server URL (default: http://localhost:11434/v1)')
|
|
parser.add_argument('--api-key', default='EMPTY',
|
|
help='API key for the model server (default: EMPTY)')
|
|
|
|
subparsers = parser.add_subparsers(dest='command', help='Available commands')
|
|
|
|
# Prompt command
|
|
prompt_parser = subparsers.add_parser('prompt', help='Run agent with a prompt')
|
|
prompt_parser.add_argument('text', nargs='?', default='-',
|
|
help='Prompt text or "-" for stdin (default: -)')
|
|
|
|
return parser
|
|
|
|
def read_prompt(text: str) -> str:
|
|
"""Read prompt from argument or stdin if text is '-'"""
|
|
if text == '-':
|
|
return sys.stdin.read().strip()
|
|
return text
|
|
|
|
|
|
def main():
|
|
parser = setup_argparse()
|
|
args = parser.parse_args()
|
|
|
|
if args.command == 'prompt':
|
|
prompt_text = read_prompt(args.text)
|
|
agent = Agent(
|
|
model=args.model,
|
|
server=args.server,
|
|
api_key=args.api_key
|
|
)
|
|
agent.run(prompt_text)
|
|
else:
|
|
parser.print_help()
|
|
|
|
if __name__ == '__main__':
|
|
main()
|