chatgpt π¬ + code interpreter π» experiments
π hello
We aim to push ChatGPT + Code Interpreter to its limits, show you what's possible and unlock your creativity! Well, and have a lot of fun doing it! π₯
π» code interpreter
Code Interpreter is an official ChatGPT plugin for data analytics, image conversions, editing code, and more. Since July 6th, 2023, it has been available to all ChatGPT Plus users. It provides OpenaAI models with a working Python interpreter in a sandboxed, firewalled execution environment. Importantly, it is possible to upload and download files.
π activate code interpreter
β οΈ limitations
- No internet access.
- You can upload a maximum of 100 MB.
(*)
- Runs only Python code.
(*)
- Does not allow installation of external Python packages.
(*)
- When the environment dies, you lose the entire state. Links that allowed you to download files stopped working.
(*)
- it is possible to bypass these restrictions
βοΈ jailbreaks
Install external Python packages
Code Interpreter has a set of pre-installed Python packages. Since CI does not have access to the Internet, you cannot install packages from outside the environment. ChatGPT will also not allow you to install add-on packages via .whl
files.
Running Java Script app through Code Interpreter
Code Interpreter is an experimental ChatGPT plugin that can write Python to a Jupyter Notebook and execute it in a sandbox. This makes it impossible to execute code written in a language other than Python.
Deno is server-side JavaScript runtime that is packaged as a single binary.
π steps
π§ͺ experiments
Detect and track face on the video
OpenAI does not allow access to pre-trained deep learning models in the Code Interpreter environment. However, it is still possible to detect and track objects. We just need to be more creative. Haar Cascade was one of the most popular approaches to face detection in old-school computer vision.
π steps
-
Upload input video.
π display input video
IMG_5759.MOV
-
Confirm that ChatGPT can successfully process the video. Extract the first frame and display it.
-
Run Haar Cascade face detection on a single video frame.
-
Run Haar Cascade face detection on the whole video.
π display result video
processed_video.mp4
-
Use box IoU to remove false positives.
π display result video
processed_video_iou_single_box.mp4
-
Crop video to follow the face.
processed_video_iou_single_box_crop_paste_600x600.mp4
Classification of images from the MNIST dataset
The MNIST dataset is a widely-used collection of handwritten digits that is used to teach computers how to recognize and understand numbers. It consists of thousands of examples of handwritten numbers from 0 to 9, created by different people in different styles. The images are very small - only 28x28 pixels. Therefore, they are great for training in an environment with limited resources.
π steps
-
Upload the MNIST dataset into the Code Interpreter environment.
-
only 10% of the original dataset is loaded to save hard drive and memory space.
-
Make sure that Code Interpreter knows how to process data.
-
Split data into train and test subsets.
-
Train sci-kit learn Support Vector Classifier on the test set.
-
Evaluate the trained model on the test set.
-
Visualize false classification results.
-
Download the trained model.
Detect, track, and count
OpenAI does not allow object detection models in the Code Interpreter environment. To carry out detection and tacking, we must take advantage of the unique colors of the objects we are interested in.
π steps
-
Upload input video.
π display input video
ampules.mov
-
Confirm that ChatGPT can successfully process the video. Extract the first frame and display it.
-
Isolate light blue color objects.
-
Draw boxes around the clusters of blue pixels.
-
Filter out small clusters of blue pixels.
-
Apply IoU-based tracking.
π display result video
ampules_with_tracking_iou.1.mp4
-
Add object counting.
-
Remove false detections.
Using OCR to extract text from images
π§ coming soon...
π¦Έ contribution
We would love your help in making this repository even better! If you know of an amazing prompt you would like to share, or if you have any suggestions for improvement, feel free to open an issue or submit a pull request.