Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/baikemark_doke-rag.json
T

1 line
2.1 KiB
JSON

{"repo": "baikemark/doke-rag", "files": {"doke_rag/core/llm/siliconcloud.py": {"a3b408130feead496dea66bf3dea3591ea6c0add": {"t": 1785674137.7072334, "n": 1893, "h": "2ffe4960f89b14da", "c": "import sys\n\nif sys.version_info < (3, 9):\n pass\nelse:\n pass\nimport pipmaster as pm # Pipmaster for dynamic library install\n\n# install specific modules\nif not pm.is_installed(\"lmdeploy\"):\n pm.install(\"lmdeploy\")\n\nfrom openai import (\n APIConnectionError,\n RateLimitError,\n APITimeoutError,\n)\nfrom tenacity import (\n retry,\n stop_after_attempt,\n wait_exponential,\n retry_if_exception_type,\n)\n\n\nimport numpy as np\nimport aiohttp\nimport base64\nimport struct\n\n\n@retry(\n stop=stop_after_attempt(3),\n wait=wait_exponential(multiplier=1, min=4, max=60),\n retry=retry_if_exception_type(\n (RateLimitError, APIConnectionError, APITimeoutError)\n ),\n)\nasync def siliconcloud_embedding(\n texts: list[str],\n model: str = \"netease-youdao/bce-embedding-base_v1\",\n base_url: str = \"https://api.siliconflow.cn/v1/embeddings\",\n max_token_size: int = 512,\n api_key: str = None,\n) -> np.ndarray:\n if api_key and not api_key.startswith(\"Bearer \"):\n api_key = \"Bearer \" + api_key\n\n headers = {\"Authorization\": api_key, \"Content-Type\": \"application/json\"}\n\n truncate_texts = [text[0:max_token_size] for text in texts]\n\n payload = {\"model\": model, \"input\": truncate_texts, \"encoding_format\": \"base64\"}\n\n base64_strings = []\n async with aiohttp.ClientSession() as session:\n async with session.post(base_url, headers=headers, json=payload) as response:\n content = await response.json()\n if \"code\" in content:\n raise ValueError(content)\n base64_strings = [item[\"embedding\"] for item in content[\"data\"]]\n\n embeddings = []\n for string in base64_strings:\n decode_bytes = base64.b64decode(string)\n n = len(decode_bytes) // 4\n float_array = struct.unpack(\"<\" + \"f\" * n, decode_bytes)\n embeddings.append(float_array)\n return np.array(embeddings)\n"}}}}