forked from ComposioHQ/composio-fastapi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdependencies.py
More file actions
43 lines (32 loc) · 947 Bytes
/
dependencies.py
File metadata and controls
43 lines (32 loc) · 947 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
import typing_extensions as te
from composio import Composio
from composio_openai import OpenAIProvider
from openai import OpenAI
from fastapi import Depends
_openai_client: OpenAI | None = None
_composio_client: Composio[OpenAIProvider] | None = None
def provide_openai_client():
"""
Provide an OpenAI client.
"""
global _openai_client
if _openai_client is None:
_openai_client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
return _openai_client
def provide_composio_client():
"""
Provide a Composio client.
"""
global _composio_client
if _composio_client is None:
_composio_client = Composio(provider=OpenAIProvider())
return _composio_client
OpenAIClient = te.Annotated[OpenAI, Depends(provide_openai_client)]
"""
An OpenAI client dependency.
"""
ComposioClient = te.Annotated[Composio, Depends(provide_composio_client)]
"""
A Composio client dependency.
"""