fev-4b / serve.py
murabcd's picture
feat: add compiled serving shared training and benchmarks
5adf069 verified
Raw History Blame Contribute Delete
1.35 kB
"""Start the resident Fev text-decision reference server."""
import argparse
import os
from pathlib import Path
from fev4b import Fev4B
from fev4b.server import create_server
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--model-dir', type=Path, default=Path(__file__).resolve().parent)
parser.add_argument('--host', default='127.0.0.1')
parser.add_argument('--port', type=int, default=8000)
parser.add_argument('--device', default='cuda:0')
parser.add_argument('--execution', choices=('reference', 'compiled'), default='reference')
parser.add_argument('--adaptation-dir', type=Path, help='Explicit, verified research adapter overlay')
args = parser.parse_args()
api_key = os.environ.get('FEV_API_KEY')
if args.host not in ('127.0.0.1', 'localhost') and not api_key:
parser.error('Set FEV_API_KEY before binding outside localhost')
model = Fev4B(args.model_dir, device=args.device, execution=args.execution,
adaptation_dir=args.adaptation_dir)
with create_server(model, (args.host, args.port), api_key=api_key) as server:
print(f'Fev ready at http://{args.host}:{args.port}', flush=True)
try:
server.serve_forever()
except KeyboardInterrupt:
pass
if __name__ == '__main__':
main()