【Django】Utilizing ChatGPT API’s Streaming Feature with Django and uWSGI

In this article, we will explain how to use the ChatGPT API’s streaming feature with Django and uWSGI. By utilizing the streaming feature, you can achieve real-time responses and efficient data processing. We will discuss the necessary configurations in this article.

Required Tools and Libraries:

  • Python 3
  • Django
  • uWSGI
  • OpenAIのChatGPT API

Step 1: Set up a Django Project

First, create a new Django project and install the required packages.

$ django-admin startproject chatgpt_project
$ cd chatgpt_project
$ pip install django uwsgi
$ pip install djangorestframework
$ pip install openai

Step 2: Create a uWSGI Configuration File

Create a uwsgi.ini file in the project root directory and add the following content:

http-timeout = 86400
http-auto-chunked = true
add-header = X-Accel-Buffering: no

module = chatgpt_project.wsgi:application
master = true
processes = 5
socket = chatgpt_project.sock
chmod-socket = 664
vacuum = true
die-on-term = true

In this file, we enable the streaming feature by setting http-auto-chunked = true and add-header = X-Accel-Buffering: no.。

Refer to the previous steps for more information.

Step 3: Create a Django View (Using Django Rest Framework)

In the views.py file, create a view using DRF and the openai library to communicate with the ChatGPT API.

import openai
from django.http import StreamingHttpResponse
from rest_framework.views import APIView

class ChatGPTStreamView(APIView):
    def post(self, request):
        openai.api_key = "YOUR_API_KEY"
        prompt = "Your prompt here"

        response = openai.Completion.create(engine="davinci-codex", prompt=prompt, max_tokens=100, n=1, stream=True)

        def generate_stream_response():
            for choice in response['choices']:
                text = choice['text']
                yield text

        return StreamingHttpResponse(generate_stream_response(), content_type="text/plain")


In this tutorial, we learned how to use the ChatGPT API’s streaming feature with Django, uWSGI, Django Rest Framework, and the openai library. This enables real-time responses and efficient data processing. Use the provided configurations and code examples as a reference to implement the streaming feature in your own projects. As AI technology continues to evolve, it’s crucial to utilize effective data processing methods.


Posted by Next-k