JayeshCC commited on
Commit
5ff47e7
·
verified ·
1 Parent(s): 6edcf7d

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. inference.py +28 -3
  2. server/app.py +9 -12
inference.py CHANGED
@@ -20,6 +20,10 @@ import textwrap
20
  from typing import List, Optional
21
 
22
  from openai import OpenAI
 
 
 
 
23
 
24
  from token_optimiser import TokenOptimiserEnv, TokenOptimiserAction
25
 
@@ -28,10 +32,9 @@ from token_optimiser import TokenOptimiserEnv, TokenOptimiserAction
28
  # ---------------------------------------------------------------------------
29
  API_BASE_URL: str = os.getenv("API_BASE_URL", "https://router.huggingface.co/v1")
30
  MODEL_NAME: str = os.getenv("MODEL_NAME", "Qwen/Qwen2.5-72B-Instruct")
31
- HF_TOKEN: Optional[str] = os.getenv("HF_TOKEN") or os.getenv("API_KEY")
32
  SERVER_URL: str = os.getenv("SERVER_URL", "http://localhost:8000")
33
  LOCAL_IMAGE_NAME: Optional[str] = os.getenv("LOCAL_IMAGE_NAME")
34
-
35
  TASK_NAME: str = "token_optimization"
36
  BENCHMARK: str = "token_optimiser"
37
  MAX_STEPS: int = 5
@@ -39,6 +42,28 @@ TEMPERATURE: float = 0.3
39
  MAX_TOKENS: int = 200
40
  SUCCESS_THRESHOLD: float = 0.6
41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  SYSTEM_PROMPT = textwrap.dedent("""
43
  You are a prompt optimization expert. Rewrite the given prompt to:
44
  1. Use the fewest possible tokens (concise language, no filler words)
@@ -257,4 +282,4 @@ async def main() -> None:
257
 
258
 
259
  if __name__ == "__main__":
260
- asyncio.run(main())
 
20
  from typing import List, Optional
21
 
22
  from openai import OpenAI
23
+ try:
24
+ from huggingface_hub import HfFolder
25
+ except Exception: # pragma: no cover
26
+ HfFolder = None
27
 
28
  from token_optimiser import TokenOptimiserEnv, TokenOptimiserAction
29
 
 
32
  # ---------------------------------------------------------------------------
33
  API_BASE_URL: str = os.getenv("API_BASE_URL", "https://router.huggingface.co/v1")
34
  MODEL_NAME: str = os.getenv("MODEL_NAME", "Qwen/Qwen2.5-72B-Instruct")
 
35
  SERVER_URL: str = os.getenv("SERVER_URL", "http://localhost:8000")
36
  LOCAL_IMAGE_NAME: Optional[str] = os.getenv("LOCAL_IMAGE_NAME")
37
+ HF_TOKEN: Optional[str] = os.getenv("HF_TOKEN")
38
  TASK_NAME: str = "token_optimization"
39
  BENCHMARK: str = "token_optimiser"
40
  MAX_STEPS: int = 5
 
42
  MAX_TOKENS: int = 200
43
  SUCCESS_THRESHOLD: float = 0.6
44
 
45
+
46
+ def _resolve_hf_token() -> Optional[str]:
47
+ """
48
+ Resolve API token in this order:
49
+ 1) HF_TOKEN env var
50
+ 2) API_KEY env var
51
+ 3) huggingface-cli cached login token
52
+ """
53
+ token = os.getenv("HF_TOKEN") or os.getenv("API_KEY")
54
+ if token:
55
+ return token
56
+
57
+ if HfFolder is not None:
58
+ try:
59
+ return HfFolder.get_token()
60
+ except Exception:
61
+ return None
62
+ return None
63
+
64
+
65
+ HF_TOKEN: Optional[str] = _resolve_hf_token()
66
+
67
  SYSTEM_PROMPT = textwrap.dedent("""
68
  You are a prompt optimization expert. Rewrite the given prompt to:
69
  1. Use the fewest possible tokens (concise language, no filler words)
 
282
 
283
 
284
  if __name__ == "__main__":
285
+ asyncio.run(main())
server/app.py CHANGED
@@ -54,7 +54,7 @@ app = create_app(
54
  )
55
 
56
 
57
- def main(host: str = "0.0.0.0", port: int = 8000):
58
  """
59
  Entry point for direct execution via uv run or python -m.
60
 
@@ -63,23 +63,20 @@ def main(host: str = "0.0.0.0", port: int = 8000):
63
  uv run --project . server --port 8001
64
  python -m token_optimiser.server.app
65
 
66
- Args:
67
- host: Host address to bind to (default: "0.0.0.0")
68
- port: Port number to listen on (default: 8000)
69
-
70
  For production deployments, consider using uvicorn directly with
71
  multiple workers:
72
  uvicorn token_optimiser.server.app:app --workers 4
73
  """
74
- import uvicorn
75
-
76
- uvicorn.run(app, host=host, port=port)
77
-
78
-
79
- if __name__ == "__main__":
80
  import argparse
 
81
 
82
  parser = argparse.ArgumentParser()
 
83
  parser.add_argument("--port", type=int, default=8000)
84
  args = parser.parse_args()
85
- main(port=args.port)
 
 
 
 
 
 
54
  )
55
 
56
 
57
+ def main() -> None:
58
  """
59
  Entry point for direct execution via uv run or python -m.
60
 
 
63
  uv run --project . server --port 8001
64
  python -m token_optimiser.server.app
65
 
 
 
 
 
66
  For production deployments, consider using uvicorn directly with
67
  multiple workers:
68
  uvicorn token_optimiser.server.app:app --workers 4
69
  """
 
 
 
 
 
 
70
  import argparse
71
+ import uvicorn
72
 
73
  parser = argparse.ArgumentParser()
74
+ parser.add_argument("--host", type=str, default="0.0.0.0")
75
  parser.add_argument("--port", type=int, default=8000)
76
  args = parser.parse_args()
77
+
78
+ uvicorn.run(app, host=args.host, port=args.port)
79
+
80
+
81
+ if __name__ == "__main__":
82
+ main()