Spaces:
Paused
Paused
File size: 1,858 Bytes
eebe980 | 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 | """Entry point: python -m gemini_web2api"""
import argparse
import os
from .config import CONFIG, load_config, find_config
from .models import MODELS
from .gemini import HAS_HTTPX
from .server import GeminiHandler, ThreadedServer
from . import __version__
def main():
parser = argparse.ArgumentParser(description="Gemini Web to OpenAI API")
parser.add_argument("--port", type=int, default=None)
parser.add_argument("--config", type=str, default=None)
parser.add_argument("--cookie-file", type=str, default=None)
parser.add_argument("--proxy", type=str, default=None, help="HTTP proxy, e.g. http://127.0.0.1:7890")
parser.add_argument("--version", action="version", version=f"gemini-web2api {__version__}")
args = parser.parse_args()
config_path = args.config or os.environ.get("GEMINI_WEB2API_CONFIG") or find_config()
if config_path:
load_config(config_path)
if args.port:
CONFIG["port"] = args.port
if args.cookie_file:
CONFIG["cookie_file"] = args.cookie_file
if args.proxy:
CONFIG["proxy"] = args.proxy
port = CONFIG["port"]
server = ThreadedServer((CONFIG["host"], port), GeminiHandler)
print(f"gemini-web2api v{__version__}")
print(f" Listening: http://0.0.0.0:{port}")
print(f" Base URL: http://localhost:{port}/v1")
print(f" Models: {', '.join(MODELS.keys())}")
print(f" Cookie: {'yes' if CONFIG.get('cookie_file') else 'none (anonymous)'}")
print(f" Proxy: {CONFIG.get('proxy') or 'system env'}")
print(f" Streaming: {'httpx (true streaming)' if HAS_HTTPX else 'urllib (buffered)'}")
print()
try:
server.serve_forever()
except KeyboardInterrupt:
print("\nStopped.")
server.shutdown()
if __name__ == "__main__":
main()
|