types.py 978 B

1234567891011121314151617181920212223242526272829303132
  1. from __future__ import annotations
  2. import os
  3. from .stubs import ChatCompletion, ChatCompletionChunk
  4. from ..providers.types import BaseProvider
  5. from typing import Union, Iterator, AsyncIterator
  6. Proxies = Union[dict, str]
  7. IterResponse = Iterator[Union[ChatCompletion, ChatCompletionChunk]]
  8. AsyncIterResponse = AsyncIterator[Union[ChatCompletion, ChatCompletionChunk]]
  9. class Client():
  10. def __init__(
  11. self,
  12. api_key: str = None,
  13. proxies: Proxies = None,
  14. **kwargs
  15. ) -> None:
  16. self.api_key: str = api_key
  17. self.proxies = proxies
  18. self.proxy: str = self.get_proxy()
  19. def get_proxy(self) -> Union[str, None]:
  20. if isinstance(self.proxies, str):
  21. return self.proxies
  22. elif self.proxies is None:
  23. return os.environ.get("G4F_PROXY")
  24. elif "all" in self.proxies:
  25. return self.proxies["all"]
  26. elif "https" in self.proxies:
  27. return self.proxies["https"]