Files

1 line
2.7 KiB
JSON

{"repo": "aichatfire/all-free-api", "files": {"free_api/resources/completions/sensechat.py": {"66a2a16f96a2b5cb0f797141b39e5d3f4b9b9a22": {"t": 1785768264.1624556, "n": 2488, "h": "2b5b8e31bffcd126", "c": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# @Project : AI. @by PyCharm\n# @File : sensechat\n# @Time : 2024/8/7 10:37\n# @Author : betterme\n# @WeChat : meutils\n# @Software : PyCharm\n# @Description :\n\nfrom meutils.pipe import *\nfrom meutils.schemas.openai_types import BACKUP_MODEL, ChatCompletionRequest, ChatCompletion, chat_completion\nfrom meutils.config_utils.lark_utils import get_next_token_for_polling\nfrom meutils.llm.openai_utils import to_openai_completion_params\nfrom meutils.notice.feishu import send_message\n\nFEISHU_URL = \"https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=LCOPGF\"\n\nimport sensenova\nfrom openai import AsyncOpenAI\n\n\nclass Completions(object):\n\n def __init__(self, api_key: Optional[str] = None, threshold: Optional[int] = None):\n self.api_key = api_key\n self.threshold = threshold\n\n async def create(self, request: ChatCompletionRequest):\n try:\n if self.threshold and len(str(request.messages)) > self.threshold:\n raise Exception(\"pass\")\n\n api_key = self.api_key or await get_next_token_for_polling(FEISHU_URL)\n # api_key=\"06B21A0AE0C94980868BD457DD5AB7FA:AEB14BD3D772499897E8306B08D1D258\"\n access_key_id, secret_access_key = api_key.strip().split(':')\n\n resp = await sensenova.ChatCompletion.acreate(\n **request.model_dump(exclude_none=True),\n access_key_id=access_key_id,\n secret_access_key=secret_access_key\n )\n if request.stream:\n async def gen():\n async for i in resp:\n yield i.data.choices[0].delta\n\n return gen()\n\n else:\n chat_completion.choices[0].message.content = resp.data.choices[0].message\n chat_completion.usage = dict(resp.data.usage)\n\n return chat_completion\n except Exception as e:\n logger.error(e)\n send_message(e, title=__name__)\n\n request.model = BACKUP_MODEL\n data = to_openai_completion_params(request)\n return await AsyncOpenAI().chat.completions.create(**data)\n\n\nif __name__ == '__main__':\n request = ChatCompletionRequest(model='SenseChat', stream=False, messages=[{'role': 'user', 'content': '你是谁'}])\n\n\n async def main():\n for i in await Completions().create(request):\n print(i)\n\n\n arun(main())\n"}}}}