LoRDxdd's picture
Add gpt4free API for Hugging Face
a4b70d9
from __future__ import annotations
import os
from ...typing import Messages, AsyncResult
from ...errors import MissingAuthError
from ..template import OpenaiTemplate
class Claude(OpenaiTemplate):
label = "Claude πŸ’₯"
url = "https://claude.ai"
api_base = "https://g4f.dev/api/claude"
working = True
active_by_default = True
login_url = "https://discord.gg/qXA4Wf4Fsm"
organization_id = None
@classmethod
async def create_async_generator(
cls,
model: str,
messages: Messages,
api_key: str = None,
api_base: str = api_base,
**kwargs
) -> AsyncResult:
api_key = os.environ.get("CLAUDE_COOKIE", api_key)
if not api_key:
raise MissingAuthError("Claude cookie not found. Please set the 'CLAUDE_COOKIE' environment variable.")
if not cls.organization_id:
cls.organization_id = os.environ.get("CLAUDE_ORGANIZATION_ID")
if not cls.organization_id:
raise MissingAuthError("Claude organization ID not found. Please set the 'CLAUDE_ORGANIZATION_ID' environment variable.")
async for chunk in super().create_async_generator(
model=model,
messages=messages,
api_base=f"{api_base}/{cls.organization_id}",
headers={"cookie": api_key},
**kwargs
):
yield chunk