Spaces:
Sleeping
Sleeping
File size: 2,194 Bytes
559f768 |
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
import os
from dotenv import load_dotenv
from supabase import create_client, Client
import asyncio
# 加载环境变量
load_dotenv()
# Supabase 配置
SUPABASE_URL = os.getenv("SUPABASE_URL")
SUPABASE_KEY = os.getenv("SUPABASE_KEY")
async def read_api_keys_from_supabase(model_name: str = None, limit: int = None):
"""
从 Supabase 的 airs_model_api_keys_view 视图中读取 API 密钥。
"""
if not SUPABASE_URL or not SUPABASE_KEY:
print("错误:SUPABASE_URL 或 SUPABASE_KEY 未在 .env 文件中配置。")
return None
try:
supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY)
print(f"已连接到 Supabase: {SUPABASE_URL}")
print('supabase', supabase)
print(f"尝试从 Supabase 获取 API 密钥,模型名称: {model_name if model_name else '所有模型'}{f', 限制: {limit}' if limit else ''}")
query = supabase.from_('airs_model_api_keys_view').select('api_key,model_name')
if model_name:
query = query.eq('model_name', model_name)
if limit:
query = query.limit(limit)
response = query.execute()
if response.data:
print("\n成功从 Supabase 获取数据:")
for item in response.data:
print(f" API Key: {item.get('api_key')}, Model Name: {item.get('model_name')}")
return response.data
else:
print("\n从 Supabase 获取数据成功,但未找到匹配的 API 密钥。")
return None
except Exception as e:
print(f"\n从 Supabase 获取 API 密钥失败: {e}")
return None
async def main():
print("--- 测试获取所有 API 密钥 ---")
await read_api_keys_from_supabase()
print("\n--- 测试获取特定模型 (glm-4-flash) 的 API 密钥 ---")
await read_api_keys_from_supabase('glm-4-flash')
print("\n--- 测试获取特定模型 (gemini-2.5-flash) 的 API 密钥 ---")
await read_api_keys_from_supabase('gemini-2.5-flash')
print("\n--- 测试获取前 5 条 API 密钥 ---")
await read_api_keys_from_supabase(limit=5)
if __name__ == "__main__":
asyncio.run(main())
|