diff --git a/apiserver/plane/app/views/external/base.py b/apiserver/plane/app/views/external/base.py index 2d5d2c7aa4b..851d2c7f334 100644 --- a/apiserver/plane/app/views/external/base.py +++ b/apiserver/plane/app/views/external/base.py @@ -1,24 +1,24 @@ # Python imports -import requests import os # Third party imports -from openai import OpenAI -from rest_framework.response import Response +import litellm +import requests +from litellm import completion from rest_framework import status +from rest_framework.response import Response -# Django imports - -# Module imports -from ..base import BaseAPIView from plane.app.permissions import ProjectEntityPermission -from plane.db.models import Workspace, Project from plane.app.serializers import ( ProjectLiteSerializer, WorkspaceLiteSerializer, ) +from plane.db.models import Project, Workspace from plane.license.utils.instance_value import get_configuration_value +# Module imports +from ..base import BaseAPIView + class GPTIntegrationEndpoint(BaseAPIView): permission_classes = [ @@ -58,11 +58,9 @@ def post(self, request, slug, project_id): final_text = task + "\n" + prompt - client = OpenAI( - api_key=OPENAI_API_KEY, - ) + litellm.api_key = OPENAI_API_KEY - response = client.chat.completions.create( + response = completion( model=GPT_ENGINE, messages=[{"role": "user", "content": final_text}], ) diff --git a/apiserver/requirements/base.txt b/apiserver/requirements/base.txt index 2b7d383ba10..bb439616e23 100644 --- a/apiserver/requirements/base.txt +++ b/apiserver/requirements/base.txt @@ -20,6 +20,7 @@ django-redis==5.3.0 uvicorn==0.23.2 channels==4.0.0 openai==1.2.4 +litellm==1.27.14 slack-sdk==3.21.3 celery==5.3.4 django_celery_beat==2.5.0