Spaces:
Sleeping
Sleeping
| 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()) | |