Public Access
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
import re, os, sys
|
|
|
|
# Read the litellm config
|
|
with open("/opt/litellm/config.yaml") as f:
|
|
content = f.read()
|
|
|
|
# Helper to extract keys by source name
|
|
def extract_keys_before(content, keyword, count=5):
|
|
"""Extract api_key values that appear before a given keyword."""
|
|
lines = content.split("\n")
|
|
keys = []
|
|
for i, line in enumerate(lines):
|
|
if keyword in line.lower():
|
|
# Look backwards for api_key
|
|
for j in range(i-1, max(0, i-10), -1):
|
|
if "api_key" in lines[j]:
|
|
key = lines[j].split('"')[1] if '"' in lines[j] else None
|
|
if key and key not in keys:
|
|
keys.append(key)
|
|
break
|
|
return keys[:count]
|
|
|
|
# Extract by model group
|
|
gemini_keys = extract_keys_before(content, "gemini")
|
|
github_keys = extract_keys_before(content, "github")
|
|
groq_keys = extract_keys_before(content, "groq")
|
|
|
|
# Print as env file format
|
|
print("# GENERATED ENV FILE")
|
|
print("# Copy these to /etc/litellm/.env")
|
|
|
|
for i, k in enumerate(gemini_keys):
|
|
print(f"GEMINI_API_KEY_{i+1}={k}")
|
|
|
|
for i, k in enumerate(github_keys):
|
|
# GitHub models use a different env var format
|
|
print(f"GITHUB_TOKEN_{i+1}={k}")
|
|
|
|
for i, k in enumerate(groq_keys):
|
|
print(f"GROQ_API_KEY_{i+1}={k}")
|