1 line
10 KiB
JSON
1 line
10 KiB
JSON
{"repo": "allowan/ustc-107-let-ai-think-of-one", "files": {"model/config.py": {"3eb328ca3752de646cdad990844d607863ec51bc": {"t": 1785745980.947577, "n": 2418, "h": "32daa0cfb336e0e5", "c": "import json\nimport os\nfrom pathlib import Path\nfrom langchain.chat_models import init_chat_model\n\n_SETTINGS_PATH = Path(__file__).resolve().parent.parent / \"settings.json\"\n\n\ndef read_json() -> dict:\n \"\"\"读取 settings.json 中的 env 配置(文件不存在时返回空字典)。\"\"\"\n try:\n with open(_SETTINGS_PATH, encoding=\"utf-8\") as f:\n data = json.load(f)\n return data.get(\"env\", {})\n except (FileNotFoundError, json.JSONDecodeError):\n return {}\n\n\ndef init_chat():\n \"\"\"初始化聊天模型。环境变量优先,settings.json 作为 fallback。\"\"\"\n file_env = read_json()\n\n api_key = os.environ.get(\"LLM_API_KEY\") or file_env.get(\"api_key\", \"\")\n base_url = os.environ.get(\"LLM_BASE_URL\") or file_env.get(\"base_url\", \"https://api.deepseek.com\")\n model_id = os.environ.get(\"LLM_MODEL\") or file_env.get(\"model\", \"deepseek-v4-flash\")\n\n if not api_key:\n raise RuntimeError(\n \"未配置 LLM API Key。请在环境变量 LLM_API_KEY 中设置,\"\n \"或复制 settings.example.json 为 settings.json 并填入 api_key。\"\n )\n\n return init_chat_model(\n model=model_id,\n model_provider=\"openai\",\n base_url=base_url,\n api_key=api_key,\n )\n\ndef change_model(group: str, model: str):\n \"\"\"更改模型选项:根据 group 与 model 索引更新 env 并重新初始化模型\"\"\"\n settings_path = Path(__file__).resolve().parent.parent / \"settings.json\"\n with open(settings_path, encoding=\"utf-8\") as f:\n data = json.load(f)\n\n groups = data.get(\"groups\", [])\n # 按 group_name 定位分组\n target_group = next(\n (g for g in groups if g.get(\"group_name\") == group), None\n )\n if target_group is None:\n raise ValueError(f\"未找到分组: {group}\")\n\n # 在该分组的 models 中按 show_id 定位模型(回退匹配 request_id)\n models = target_group.get(\"models\", [])\n target_model = next(\n (m for m in models if m.get(\"show_id\") == model or m.get(\"request_id\") == model),\n None,\n )\n if target_model is None:\n raise ValueError(f\"在分组 '{group}' 中未找到模型: {model}\")\n\n # 用分组与模型信息更新 env\n env = data.setdefault(\"env\", {})\n env[\"api_key\"] = target_group.get(\"api_key\", \"\")\n env[\"base_url\"] = target_group.get(\"base_url\", \"\")\n env[\"api_type\"] = target_group.get(\"api_type\", \"chat-completions\")\n env[\"model\"] = target_model.get(\"request_id\", \"\")\n\n # 写回 settings.json\n with open(settings_path, \"w\", encoding=\"utf-8\") as f:\n json.dump(data, f, ensure_ascii=False, indent=4)\n\n # 应用初始化\n return init_chat()\n"}, "c61c5a71849378aff8b2ccc53c899e8abafd70e1": {"t": 1785758488.7981951, "n": 2418, "h": "32daa0cfb336e0e5", "c": "import json\nimport os\nfrom pathlib import Path\nfrom langchain.chat_models import init_chat_model\n\n_SETTINGS_PATH = Path(__file__).resolve().parent.parent / \"settings.json\"\n\n\ndef read_json() -> dict:\n \"\"\"读取 settings.json 中的 env 配置(文件不存在时返回空字典)。\"\"\"\n try:\n with open(_SETTINGS_PATH, encoding=\"utf-8\") as f:\n data = json.load(f)\n return data.get(\"env\", {})\n except (FileNotFoundError, json.JSONDecodeError):\n return {}\n\n\ndef init_chat():\n \"\"\"初始化聊天模型。环境变量优先,settings.json 作为 fallback。\"\"\"\n file_env = read_json()\n\n api_key = os.environ.get(\"LLM_API_KEY\") or file_env.get(\"api_key\", \"\")\n base_url = os.environ.get(\"LLM_BASE_URL\") or file_env.get(\"base_url\", \"https://api.deepseek.com\")\n model_id = os.environ.get(\"LLM_MODEL\") or file_env.get(\"model\", \"deepseek-v4-flash\")\n\n if not api_key:\n raise RuntimeError(\n \"未配置 LLM API Key。请在环境变量 LLM_API_KEY 中设置,\"\n \"或复制 settings.example.json 为 settings.json 并填入 api_key。\"\n )\n\n return init_chat_model(\n model=model_id,\n model_provider=\"openai\",\n base_url=base_url,\n api_key=api_key,\n )\n\ndef change_model(group: str, model: str):\n \"\"\"更改模型选项:根据 group 与 model 索引更新 env 并重新初始化模型\"\"\"\n settings_path = Path(__file__).resolve().parent.parent / \"settings.json\"\n with open(settings_path, encoding=\"utf-8\") as f:\n data = json.load(f)\n\n groups = data.get(\"groups\", [])\n # 按 group_name 定位分组\n target_group = next(\n (g for g in groups if g.get(\"group_name\") == group), None\n )\n if target_group is None:\n raise ValueError(f\"未找到分组: {group}\")\n\n # 在该分组的 models 中按 show_id 定位模型(回退匹配 request_id)\n models = target_group.get(\"models\", [])\n target_model = next(\n (m for m in models if m.get(\"show_id\") == model or m.get(\"request_id\") == model),\n None,\n )\n if target_model is None:\n raise ValueError(f\"在分组 '{group}' 中未找到模型: {model}\")\n\n # 用分组与模型信息更新 env\n env = data.setdefault(\"env\", {})\n env[\"api_key\"] = target_group.get(\"api_key\", \"\")\n env[\"base_url\"] = target_group.get(\"base_url\", \"\")\n env[\"api_type\"] = target_group.get(\"api_type\", \"chat-completions\")\n env[\"model\"] = target_model.get(\"request_id\", \"\")\n\n # 写回 settings.json\n with open(settings_path, \"w\", encoding=\"utf-8\") as f:\n json.dump(data, f, ensure_ascii=False, indent=4)\n\n # 应用初始化\n return init_chat()\n"}, "a95c52d80d0cde6f25e1c79ea4f5f6bd98cf4756": {"t": 1785758491.374085, "n": 1853, "h": "74dc484b1b4e2806", "c": "import json\nfrom pathlib import Path\nfrom langchain.chat_models import init_chat_model\n\n\ndef read_json() -> dict:\n \"\"\"读取 ../settings.json 中的 env 配置\"\"\"\n settings_path = Path(__file__).resolve().parent.parent / \"settings.json\"\n with open(settings_path, encoding=\"utf-8\") as f:\n data = json.load(f)\n return data.get(\"env\", {})\n\ndef init_chat():\n \"\"\"完成对模型的初始化\"\"\"\n env = read_json()\n model = init_chat_model(\n model=env[\"model\"],\n model_provider=\"openai\",\n base_url=env[\"base_url\"],\n api_key=env[\"api_key\"],\n )\n return model\n\ndef change_model(group: str, model: str):\n \"\"\"更改模型选项:根据 group 与 model 索引更新 env 并重新初始化模型\"\"\"\n settings_path = Path(__file__).resolve().parent.parent / \"settings.json\"\n with open(settings_path, encoding=\"utf-8\") as f:\n data = json.load(f)\n\n groups = data.get(\"groups\", [])\n # 按 group_name 定位分组\n target_group = next(\n (g for g in groups if g.get(\"group_name\") == group), None\n )\n if target_group is None:\n raise ValueError(f\"未找到分组: {group}\")\n\n # 在该分组的 models 中按 show_id 定位模型(回退匹配 request_id)\n models = target_group.get(\"models\", [])\n target_model = next(\n (m for m in models if m.get(\"show_id\") == model or m.get(\"request_id\") == model),\n None,\n )\n if target_model is None:\n raise ValueError(f\"在分组 '{group}' 中未找到模型: {model}\")\n\n # 用分组与模型信息更新 env\n env = data.setdefault(\"env\", {})\n env[\"api_key\"] = target_group.get(\"api_key\", \"\")\n env[\"base_url\"] = target_group.get(\"base_url\", \"\")\n env[\"api_type\"] = target_group.get(\"api_type\", \"chat-completions\")\n env[\"model\"] = target_model.get(\"request_id\", \"\")\n\n # 写回 settings.json\n with open(settings_path, \"w\", encoding=\"utf-8\") as f:\n json.dump(data, f, ensure_ascii=False, indent=4)\n\n # 应用初始化\n return init_chat()\n"}, "1786ababffad1f5155254158ec5d20a2738ab984": {"t": 1785758492.5764182, "n": 1872, "h": "ed61621b28c622fd", "c": "import json\nimport os\nfrom pathlib import Path\nfrom langchain.chat_models import init_chat_model\n\n\ndef read_json() -> dict:\n \"\"\"读取 ../settings.json 中的 env 配置\"\"\"\n settings_path = Path(__file__).resolve().parent.parent / \"settings.json\"\n with open(settings_path, encoding=\"utf-8\") as f:\n data = json.load(f)\n return data.get(\"env\", {})\n\ndef init_chat():\n \"\"\"完成对模型的初始化\"\"\"\n env = read_json()\n model = init_chat_model(\n model=env[\"model\"],\n model_provider=\"openai\",\n base_url=env[\"base_url\"],\n api_key=env[\"api_key\"],\n )\n return model\n\ndef change_model(group: str, model: str):\n \"\"\"更改模型选项:根据 group 与 model 索引更新 env 并重新初始化模型\"\"\"\n settings_path = Path(__file__).resolve().parent.parent / \"settings.json\"\n with open(settings_path, encoding=\"utf-8\") as f:\n data = json.load(f)\n\n groups = data.get(\"groups\", [])\n # 按 group_name 定位分组\n target_group = next(\n (g for g in groups if g.get(\"group_name\") == group), None\n )\n if target_group is None:\n raise ValueError(f\"未找到分组: {group}\")\n\n # 在该分组的 models 中按 show_id 定位模型(回退匹配 request_id)\n models = target_group.get(\"models\", [])\n target_model = next(\n (m for m in models if m.get(\"show_id\") == model or m.get(\"request_id\") == model),\n None,\n )\n if target_model is None:\n raise ValueError(f\"在分组 '{group}' 中未找到模型: {model}\")\n\n # 用分组与模型信息更新 env\n env = data.setdefault(\"env\", {})\n env[\"api_key\"] = target_group.get(\"api_key\", \"\")\n env[\"base_url\"] = target_group.get(\"base_url\", \"\")\n env[\"api_type\"] = target_group.get(\"api_type\", \"chat-completions\")\n env[\"model\"] = target_model.get(\"request_id\", \"\")\n\n # 写回 settings.json\n with open(settings_path, \"w\", encoding=\"utf-8\") as f:\n json.dump(data, f, ensure_ascii=False, indent=4)\n\n # 应用初始化\n return init_chat()\n \n"}}}} |