👩‍🔬 refactor: rename repo

This commit is contained in:
Florian Hönicke
2023-05-04 18:45:58 +02:00
parent 53a775a5ea
commit 446c3b19df
51 changed files with 134 additions and 443703 deletions

View File

@@ -87,7 +87,7 @@ jobs:
VERSION: ${{ env.VERSION }} VERSION: ${{ env.VERSION }}
shell: bash shell: bash
run: | run: |
if docker pull jinaai/gpt-dev:$VERSION; then if docker pull jinaai/dev-gpt:$VERSION; then
echo "Executor version/tag is used already. Please update the tag" echo "Executor version/tag is used already. Please update the tag"
exit 1 exit 1
else else
@@ -109,7 +109,7 @@ jobs:
if: steps.check.outputs.changed == 'true' if: steps.check.outputs.changed == 'true'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
context: src/options/generate/static_files/base_image context: dev_gpt/options/generate/static_files/base_image
push: true push: true
tags: jinaai/gpt-dev:${{ env.VERSION }} tags: jinaai/dev-gpt:${{ env.VERSION }}

2
.gitignore vendored
View File

@@ -3,5 +3,5 @@
.env .env
data data
build build
gptdeploy.egg-info dev-gpt.egg-info
dist dist

View File

@@ -1,3 +1,3 @@
include requirements.txt include requirements.txt
include gptdeploy.cmd include dev-gpt.cmd
recursive-include src/options/generate/static_files/ * recursive-include src/options/generate/static_files/ *

127
README.md
View File

@@ -1,9 +1,9 @@
<h1 align="center"> <h1 align="center">
GPT Deploy: One line to generate them all 🧙🚀 Dev GPT : One line to generate them all 🧙🚀
</h1> </h1>
<p align="center"> <p align="center">
<img src="res/gpt-deploy-logo.png" alt="Jina NOW logo" width="150px"> <img src="res/dev-gpt-logo.png" alt="Jina NOW logo" width="150px">
</p> </p>
<p align="center"> <p align="center">
Turn your natural language descriptions into fully functional, deployed AI-powered microservices with a single command! Turn your natural language descriptions into fully functional, deployed AI-powered microservices with a single command!
@@ -17,29 +17,30 @@ Your imagination is the limit!
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/tiangolo/fastapi" target="_blank"> <a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/tiangolo/fastapi" target="_blank">
<img src="https://coverage-badge.samuelcolvin.workers.dev/tiangolo/fastapi.svg" alt="Coverage"> <img src="https://coverage-badge.samuelcolvin.workers.dev/tiangolo/fastapi.svg" alt="Coverage">
</a> </a>
<a href="https://pypi.org/project/gptdeploy" target="_blank"> <a href="https://pypi.org/project/dev-gpt" target="_blank">
<img src="https://img.shields.io/pypi/v/gptdeploy?color=%2334D058&label=pypi%20package" alt="Package version"> <img src="https://img.shields.io/pypi/v/dev-gpt?color=%2334D058&label=pypi%20package" alt="Package version">
</a> </a>
<a href="https://pypi.org/project/gptdeploy" target="_blank"> <a href="https://pypi.org/project/dev-gpt" target="_blank">
<img src="https://img.shields.io/pypi/pyversions/gptdeploy.svg?color=%2334D058" alt="Supported Python versions"> <img src="https://img.shields.io/pypi/pyversions/dev-gpt.svg?color=%2334D058" alt="Supported Python versions">
</a> </a>
<a href="https://github.com/tiangolo/gptdeploy/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster" target="_blank"> <a href="https://github.com/tiangolo/dev-gpt/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster" target="_blank">
<img src="https://img.shields.io/badge/platform-mac%20%7C%20linux%20%7C%20windows-blue" alt="Supported platforms"> <img src="https://img.shields.io/badge/platform-mac%20%7C%20linux%20%7C%20windows-blue" alt="Supported platforms">
</a> </a>
<a href="https://pypistats.org/packages/gptdeploy" target="_blank"> <a href="https://pypistats.org/packages/dev-gpt" target="_blank">
<img src="https://img.shields.io/pypi/dm/gptdeploy?color=%2334D058&label=pypi%20downloads" alt="Downloads"> <img src="https://img.shields.io/pypi/dm/dev-gpt?color=%2334D058&label=pypi%20downloads" alt="Downloads">
</a> </a>
<a href="https://discord.gg/ESn8ED6Fyn" target="_blank"> <a href="https://discord.gg/ESn8ED6Fyn" target="_blank">
<img src="https://img.shields.io/badge/chat_on-Discord-7289DA?logo=discord&logoColor=white" alt="Discord Chat"> <img src="https://img.shields.io/badge/chat_on-Discord-7289DA?logo=discord&logoColor=white" alt="Discord Chat">
</a> </a>
[![Watch the video](res/thumbnail.png)](https://user-images.githubusercontent.com/11627845/231530421-272a66aa-4260-4e17-ab7a-ba66adca754c.mp4) [//]: # ([![Watch the video]&#40;res/thumbnail.png&#41;]&#40;https://user-images.githubusercontent.com/11627845/231530421-272a66aa-4260-4e17-ab7a-ba66adca754c.mp4&#41;)
</p> </p>
This project streamlines the creation and deployment of AI-powered microservices. This project streamlines the creation and deployment of AI-powered microservices.
Simply describe your task using natural language, and the system will automatically build and deploy your microservice. Simply describe your task using natural language, and the system will automatically build and deploy your microservice.
To ensure the microservice accurately aligns with your intended task a test scenario is required. You get guidance from our three agents:
## Quickstart ## Quickstart
### Requirements ### Requirements
@@ -47,8 +48,8 @@ To ensure the microservice accurately aligns with your intended task a test scen
### Installation ### Installation
```bash ```bash
pip install gptdeploy pip install dev-gpt
gptdeploy configure --key <your openai api key> dev-gpt configure --key <your openai api key>
``` ```
If you set the environment variable `OPENAI_API_KEY`, the configuration step can be skipped. If you set the environment variable `OPENAI_API_KEY`, the configuration step can be skipped.
Your api key must have access to gpt-4 to use this tool. Your api key must have access to gpt-4 to use this tool.
@@ -56,7 +57,7 @@ We are working on a way to use gpt-3.5-turbo as well.
### Generate Microservice ### Generate Microservice
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "<description of the microservice>" \ --description "<description of the microservice>" \
--model <gpt-3.5 or gpt-4> \ --model <gpt-3.5 or gpt-4> \
--path </path/to/local/folder> --path </path/to/local/folder>
@@ -70,13 +71,13 @@ but will not be able to generate as complex microservices. (default: largest you
The creation process should take between 5 and 15 minutes. The creation process should take between 5 and 15 minutes.
During this time, GPT iteratively builds your microservice until it finds a strategy that make your test scenario pass. During this time, GPT iteratively builds your microservice until it finds a strategy that make your test scenario pass.
Be aware that the costs you have to pay for openai vary between $0.50 and $3.00 per microservice (using GPT-4). Be aware that the costs you have to pay for openai vary between $0.50 and $3.00 per microservice using GPT-4 or $0.05 to $0.30 for GPT-3.5-Trubo.
### Run Microservice ### Run Microservice
Run the microservice locally in docker. In case docker is not running on your machine, it will try to run it without docker. Run the microservice locally in docker. In case docker is not running on your machine, it will try to run it without docker.
With this command a playground opens in your browser where you can test the microservice. With this command a playground opens in your browser where you can test the microservice.
```bash ```bash
gptdeploy run --path <path to microservice> dev-gpt run --path <path to microservice>
``` ```
@@ -85,7 +86,7 @@ If you want to deploy your microservice to the cloud a [Jina account](https://cl
When creating a Jina account, you get some free credits, which you can use to deploy your microservice ($0.025/hour). When creating a Jina account, you get some free credits, which you can use to deploy your microservice ($0.025/hour).
If you run out of credits, you can purchase more. If you run out of credits, you can purchase more.
```bash ```bash
gptdeploy deploy --microservice_path <path to microservice> dev-gpt deploy --microservice_path <path to microservice>
``` ```
@@ -97,11 +98,11 @@ jc delete <microservice id>
``` ```
## Examples ## Examples
In this section you can get a feeling for the kind of microservices that can be generated with GPT Deploy. In this section you can get a feeling for the kind of microservices that can be generated with Dev-GPT.
### Compliment Generator ### Compliment Generator
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "The user writes something and gets a related deep compliment." \ --description "The user writes something and gets a related deep compliment." \
--model gpt-4 --model gpt-4
``` ```
@@ -110,7 +111,7 @@ gptdeploy generate \
### Extract and summarize news articles given a URL ### Extract and summarize news articles given a URL
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Extract text from a news article URL using Newspaper3k library and generate a summary using gpt. Example input: http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/" \ --description "Extract text from a news article URL using Newspaper3k library and generate a summary using gpt. Example input: http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/" \
--model gpt-4 --model gpt-4
``` ```
@@ -118,7 +119,7 @@ gptdeploy generate \
### Chemical Formula Visualization ### Chemical Formula Visualization
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Convert a chemical formula into a 2D chemical structure diagram. Example inputs: C=C, CN=C=O, CCC(=O)O" \ --description "Convert a chemical formula into a 2D chemical structure diagram. Example inputs: C=C, CN=C=O, CCC(=O)O" \
--model gpt-4 --model gpt-4
``` ```
@@ -126,7 +127,7 @@ gptdeploy generate \
### 2d rendering of 3d model ### 2d rendering of 3d model
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "create a 2d rendering of a whole 3d object and x,y,z object rotation using trimesh and pyrender.OffscreenRenderer with os.environ['PYOPENGL_PLATFORM'] = 'egl' and freeglut3-dev library - example input: https://graphics.stanford.edu/courses/cs148-10-summer/as3/code/as3/teapot.obj" \ --description "create a 2d rendering of a whole 3d object and x,y,z object rotation using trimesh and pyrender.OffscreenRenderer with os.environ['PYOPENGL_PLATFORM'] = 'egl' and freeglut3-dev library - example input: https://graphics.stanford.edu/courses/cs148-10-summer/as3/code/as3/teapot.obj" \
--model gpt-4 --model gpt-4
``` ```
@@ -134,7 +135,7 @@ gptdeploy generate \
### Product Recommendation ### Product Recommendation
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Generate personalized product recommendations based on user product browsing history and the product categories fashion, electronics and sport. Example: Input: browsing history: prod1(electronics),prod2(fashion),prod3(fashion), output: p4(fashion)" \ --description "Generate personalized product recommendations based on user product browsing history and the product categories fashion, electronics and sport. Example: Input: browsing history: prod1(electronics),prod2(fashion),prod3(fashion), output: p4(fashion)" \
--model gpt-4 --model gpt-4
``` ```
@@ -142,7 +143,7 @@ gptdeploy generate \
### Hacker News Search ### Hacker News Search
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Given a search query, find articles on hacker news using the hacker news api and return a list of (title, author, website_link, first_image_on_the_website)" \ --description "Given a search query, find articles on hacker news using the hacker news api and return a list of (title, author, website_link, first_image_on_the_website)" \
--model gpt-4 --model gpt-4
```` ````
@@ -151,7 +152,7 @@ gptdeploy generate \
### Animal Detector ### Animal Detector
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Given an image, return the image with bounding boxes of all animals (https://pjreddie.com/media/files/yolov3.weights, https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfg), Example input: https://images.unsplash.com/photo-1444212477490-ca407925329e" \ --description "Given an image, return the image with bounding boxes of all animals (https://pjreddie.com/media/files/yolov3.weights, https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfg), Example input: https://images.unsplash.com/photo-1444212477490-ca407925329e" \
--model gpt-4 --model gpt-4
``` ```
@@ -159,15 +160,15 @@ gptdeploy generate \
### Meme Generator ### Meme Generator
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Generate a meme from an image and a caption. Example input: https://media.wired.com/photos/5f87340d114b38fa1f8339f9/master/w_1600%2Cc_limit/Ideas_Surprised_Pikachu_HD.jpg, TOP:When you discovered GPTDeploy" \ --description "Generate a meme from an image and a caption. Example input: https://media.wired.com/photos/5f87340d114b38fa1f8339f9/master/w_1600%2Cc_limit/Ideas_Surprised_Pikachu_HD.jpg, TOP:When you discovered GPT Dev" \
--model gpt-4 --model gpt-4
``` ```
<img src="res/meme_example.png" alt="Meme Generator" width="400" /> <img src="res/meme_example.png" alt="Meme Generator" width="400" />
### Rhyme Generator ### Rhyme Generator
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Given a word, return a list of rhyming words using the datamuse api" \ --description "Given a word, return a list of rhyming words using the datamuse api" \
--model gpt-4 --model gpt-4
``` ```
@@ -175,7 +176,7 @@ gptdeploy generate \
### Word Cloud Generator ### Word Cloud Generator
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Generate a word cloud from a given text" \ --description "Generate a word cloud from a given text" \
--model gpt-4 --model gpt-4
``` ```
@@ -183,7 +184,7 @@ gptdeploy generate \
### 3d model info ### 3d model info
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Given a 3d object, return vertex count and face count. Example: https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj" \ --description "Given a 3d object, return vertex count and face count. Example: https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj" \
--model gpt-4 --model gpt-4
``` ```
@@ -191,7 +192,7 @@ gptdeploy generate \
### Table extraction ### Table extraction
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Given a URL, extract all tables as csv. Example: http://www.ins.tn/statistiques/90" \ --description "Given a URL, extract all tables as csv. Example: http://www.ins.tn/statistiques/90" \
--model gpt-4 --model gpt-4
``` ```
@@ -199,7 +200,7 @@ gptdeploy generate \
### Audio to mel spectrogram ### Audio to mel spectrogram
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Create mel spectrogram from audio file. Example: https://cdn.pixabay.com/download/audio/2023/02/28/audio_550d815fa5.mp3" \ --description "Create mel spectrogram from audio file. Example: https://cdn.pixabay.com/download/audio/2023/02/28/audio_550d815fa5.mp3" \
--model gpt-4 --model gpt-4
``` ```
@@ -207,7 +208,7 @@ gptdeploy generate \
### Text to speech ### Text to speech
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Convert text to speech" \ --description "Convert text to speech" \
--model gpt-4 --model gpt-4
``` ```
@@ -220,7 +221,7 @@ gptdeploy generate \
### Heatmap Generator ### Heatmap Generator
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Create a heatmap from an image and a list of relative coordinates. Example input: https://images.unsplash.com/photo-1574786198875-49f5d09fe2d2, [[0.1, 0.2], [0.3, 0.4], [0.5, 0.6], [0.2, 0.1], [0.7, 0.2], [0.4, 0.2]]" \ --description "Create a heatmap from an image and a list of relative coordinates. Example input: https://images.unsplash.com/photo-1574786198875-49f5d09fe2d2, [[0.1, 0.2], [0.3, 0.4], [0.5, 0.6], [0.2, 0.1], [0.7, 0.2], [0.4, 0.2]]" \
--model gpt-4 --model gpt-4
``` ```
@@ -228,7 +229,7 @@ gptdeploy generate \
### QR Code Generator ### QR Code Generator
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Generate QR code from URL. Example input: https://www.example.com" \ --description "Generate QR code from URL. Example input: https://www.example.com" \
--model gpt-4 --model gpt-4
``` ```
@@ -237,7 +238,7 @@ gptdeploy generate \
### Mandelbrot Set Visualizer ### Mandelbrot Set Visualizer
```bash ```bash
gptdeploy generate \ dev-gpt generate \
--description "Visualize the Mandelbrot set with custom parameters. Example input: center=-0+1i, zoom=1.0, size=800x800, iterations=1000" \ --description "Visualize the Mandelbrot set with custom parameters. Example input: center=-0+1i, zoom=1.0, size=800x800, iterations=1000" \
--model gpt-4 --model gpt-4
``` ```
@@ -247,7 +248,7 @@ gptdeploy generate \
### Markdown to HTML Converter ### Markdown to HTML Converter
```bash ```bash
gptdeploy generate --description "Convert markdown to HTML" dev-gpt generate --description "Convert markdown to HTML"
``` ```
<img src="res/markdown_to_html_example.png" alt="Markdown to HTML Converter" width="400" /> <img src="res/markdown_to_html_example.png" alt="Markdown to HTML Converter" width="400" />
@@ -261,7 +262,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Given a password, return a score from 1 to 10 indicating the strength of the password" --test "Pa$$w0rd => 1/5, !Akfdh%.ytRadf => 5/5") [//]: # (dev-gpt generate --description "Given a password, return a score from 1 to 10 indicating the strength of the password" --test "Pa$$w0rd => 1/5, !Akfdh%.ytRadf => 5/5")
[//]: # (```) [//]: # (```)
@@ -269,7 +270,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Convert text to morse code" --test "Hello, welcome to GPT Deploy!") [//]: # (dev-gpt generate --description "Convert text to morse code" --test "Hello, welcome to GPT Dev!")
[//]: # (```) [//]: # (```)
@@ -277,7 +278,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Given an IP address, return the geolocation information" --test "142.251.46.174") [//]: # (dev-gpt generate --description "Given an IP address, return the geolocation information" --test "142.251.46.174")
[//]: # (```) [//]: # (```)
@@ -285,7 +286,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Converts any currency into any other" --test "1 usd to eur") [//]: # (dev-gpt generate --description "Converts any currency into any other" --test "1 usd to eur")
[//]: # (```) [//]: # (```)
@@ -293,7 +294,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Given an image, resize it to a specified width and height" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff") [//]: # (dev-gpt generate --description "Given an image, resize it to a specified width and height" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff")
[//]: # (```) [//]: # (```)
@@ -301,7 +302,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Given a city, return the current weather" --test "Berlin") [//]: # (dev-gpt generate --description "Given a city, return the current weather" --test "Berlin")
[//]: # (```) [//]: # (```)
@@ -310,7 +311,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Given a sudoku puzzle, return the solution" --test "[[2, 5, 0, 0, 3, 0, 9, 0, 1], [0, 1, 0, 0, 0, 4, 0, 0, 0], [4, 0, 7, 0, 0, 0, 2, 0, 8], [0, 0, 5, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 9, 8, 1, 0, 0], [0, 4, 0, 0, 0, 3, 0, 0, 0], [0, 0, 0, 3, 6, 0, 0, 7, 2], [0, 7, 0, 0, 0, 0, 0, 0, 3], [9, 0, 3, 0, 0, 0, 6, 0, 4]]") [//]: # (dev-gpt generate --description "Given a sudoku puzzle, return the solution" --test "[[2, 5, 0, 0, 3, 0, 9, 0, 1], [0, 1, 0, 0, 0, 4, 0, 0, 0], [4, 0, 7, 0, 0, 0, 2, 0, 8], [0, 0, 5, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 9, 8, 1, 0, 0], [0, 4, 0, 0, 0, 3, 0, 0, 0], [0, 0, 0, 3, 6, 0, 0, 7, 2], [0, 7, 0, 0, 0, 0, 0, 0, 3], [9, 0, 3, 0, 0, 0, 6, 0, 4]]")
[//]: # (```) [//]: # (```)
@@ -319,7 +320,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Estimate a company's carbon footprint based on factors like transportation, electricity usage, waste production etc..." --test "Jina AI") [//]: # (dev-gpt generate --description "Estimate a company's carbon footprint based on factors like transportation, electricity usage, waste production etc..." --test "Jina AI")
[//]: # (```) [//]: # (```)
@@ -328,7 +329,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Create a microservice that estimates the value of a property based on factors like location, property type, age, and square footage." --test "Berlin Friedrichshain, Flat, 100m², 10 years old") [//]: # (dev-gpt generate --description "Create a microservice that estimates the value of a property based on factors like location, property type, age, and square footage." --test "Berlin Friedrichshain, Flat, 100m², 10 years old")
[//]: # (```) [//]: # (```)
@@ -337,7 +338,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Align two DNA or RNA sequences using the Needleman-Wunsch algorithm" --test "AGTC, GTCA") [//]: # (dev-gpt generate --description "Align two DNA or RNA sequences using the Needleman-Wunsch algorithm" --test "AGTC, GTCA")
[//]: # (```) [//]: # (```)
@@ -346,7 +347,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Generate a barcode from a string" --test "Hello, welcome to GPT Deploy!") [//]: # (dev-gpt generate --description "Generate a barcode from a string" --test "Hello, welcome to Dev-GPT!")
[//]: # (```) [//]: # (```)
@@ -355,7 +356,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Compress a file using the gzip algorithm" --test "content of the file: Hello, welcome to GPT Deploy!") [//]: # (dev-gpt generate --description "Compress a file using the gzip algorithm" --test "content of the file: Hello, welcome to Dev-GPT!")
[//]: # (```) [//]: # (```)
@@ -364,7 +365,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Add a watermark &#40;GPT Deploy&#41; to an image" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff") [//]: # (dev-gpt generate --description "Add a watermark &#40;Dev-GPT&#41; to an image" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff")
[//]: # (```) [//]: # (```)
@@ -373,7 +374,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Extract metadata from a file" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff") [//]: # (dev-gpt generate --description "Extract metadata from a file" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff")
[//]: # (```) [//]: # (```)
@@ -382,7 +383,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Extract a thumbnail from a video" --test "http://techslides.com/demos/sample-videos/small.mp4") [//]: # (dev-gpt generate --description "Extract a thumbnail from a video" --test "http://techslides.com/demos/sample-videos/small.mp4")
[//]: # (```) [//]: # (```)
@@ -391,7 +392,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Create a gif from a list of images" --test "https://images.unsplash.com/photo-1564725075388-cc8338732289, https://images.unsplash.com/photo-1584555684040-bad07f46a21f, https://images.unsplash.com/photo-1584555613497-9ecf9dd06f68") [//]: # (dev-gpt generate --description "Create a gif from a list of images" --test "https://images.unsplash.com/photo-1564725075388-cc8338732289, https://images.unsplash.com/photo-1584555684040-bad07f46a21f, https://images.unsplash.com/photo-1584555613497-9ecf9dd06f68")
[//]: # (```) [//]: # (```)
@@ -404,7 +405,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # () [//]: # ()
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Visualize a sound file and output the visualization as video combined with the sound" --test "some/mp3/file.mp3") [//]: # (dev-gpt generate --description "Visualize a sound file and output the visualization as video combined with the sound" --test "some/mp3/file.mp3")
[//]: # (```) [//]: # (```)
@@ -414,7 +415,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "creates aesthetically pleasing color palettes based on a seed color, using color theory principles like complementary or analogous colors" --test "red") [//]: # (dev-gpt generate --description "creates aesthetically pleasing color palettes based on a seed color, using color theory principles like complementary or analogous colors" --test "red")
[//]: # (```) [//]: # (```)
@@ -423,7 +424,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Generate a depth map from a 3d Object" --test "https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj") [//]: # (dev-gpt generate --description "Generate a depth map from a 3d Object" --test "https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/models/wolf.obj")
[//]: # (```) [//]: # (```)
@@ -435,7 +436,7 @@ gptdeploy generate --description "Convert markdown to HTML"
[//]: # (```bash) [//]: # (```bash)
[//]: # (gptdeploy generate --description "Convert image to ASCII art" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff") [//]: # (dev-gpt generate --description "Convert image to ASCII art" --test "https://images.unsplash.com/photo-1602738328654-51ab2ae6c4ff")
[//]: # (```) [//]: # (```)
@@ -478,14 +479,14 @@ graph TB
``` ```
1. GPT Deploy identifies several strategies to implement your task. 1. Dev-GPT identifies several strategies to implement your task.
2. It tests each strategy until it finds one that works. 2. It tests each strategy until it finds one that works.
3. For each strategy, it generates the following files: 3. For each strategy, it generates the following files:
- microservice.py: This is the main implementation of the microservice. - microservice.py: This is the main implementation of the microservice.
- test_microservice.py: These are test cases to ensure the microservice works as expected. - test_microservice.py: These are test cases to ensure the microservice works as expected.
- requirements.txt: This file lists the packages needed by the microservice and its tests. - requirements.txt: This file lists the packages needed by the microservice and its tests.
- Dockerfile: This file is used to run the microservice in a container and also runs the tests when building the image. - Dockerfile: This file is used to run the microservice in a container and also runs the tests when building the image.
4. GPT Deploy attempts to build the image. If the build fails, it uses the error message to apply a fix and tries again to build the image. 4. Dev-GPT attempts to build the image. If the build fails, it uses the error message to apply a fix and tries again to build the image.
5. Once it finds a successful strategy, it: 5. Once it finds a successful strategy, it:
- Pushes the Docker image to the registry. - Pushes the Docker image to the registry.
- Deploys the microservice. - Deploys the microservice.
@@ -509,7 +510,7 @@ next steps:
Nice to have: Nice to have:
- [ ] smooth rendering animation of the responses - [ ] smooth rendering animation of the responses
- [ ] if the user runs gptdeploy without any arguments, show the help message - [ ] if the user runs dev-gpt without any arguments, show the help message
- [ ] don't show this message: - [ ] don't show this message:
🔐 You are logged in to Jina AI as florian.hoenicke (username:auth0-unified-448f11965ce142b6). 🔐 You are logged in to Jina AI as florian.hoenicke (username:auth0-unified-448f11965ce142b6).
To log out, use jina auth logout. To log out, use jina auth logout.
@@ -528,9 +529,9 @@ Make sure it is only printed twice in case it changed.
- [ ] allow to update your microservice by providing feedback - [ ] allow to update your microservice by providing feedback
- [ ] support for other large language models like Open Assistent - [ ] support for other large language models like Open Assistent
- [ ] for cost savings, it should be possible to insert less context during the code generation of the main functionality - no jina knowledge is required - [ ] for cost savings, it should be possible to insert less context during the code generation of the main functionality - no jina knowledge is required
- [ ] use gptdeploy list to show all deployments - [ ] use dev-gpt list to show all deployments
- [ ] gptdeploy delete to delete a deployment - [ ] dev-gpt delete to delete a deployment
- [ ] gptdeploy update to update a deployment - [ ] dev-gpt update to update a deployment
- [ ] test param optional - in case the test param is not there first ask gpt if more information is required to write a test - like access to pdf data - [ ] test param optional - in case the test param is not there first ask gpt if more information is required to write a test - like access to pdf data
- [ ] section for microservices built by the community - [ ] section for microservices built by the community
- [ ] test feedback for playground generation (could be part of the debugging) - [ ] test feedback for playground generation (could be part of the debugging)

View File

@@ -1,4 +1,4 @@
from src import main from dev_gpt import main
if __name__ == "__main__": if __name__ == "__main__":
main() main()

3
dev_gpt/__init__.py Normal file
View File

@@ -0,0 +1,3 @@
__version__ = '0.18.35'
from dev_gpt.cli import main

View File

@@ -14,17 +14,17 @@ from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from requests.exceptions import ConnectionError, ChunkedEncodingError from requests.exceptions import ConnectionError, ChunkedEncodingError
from urllib3.exceptions import InvalidChunkLength from urllib3.exceptions import InvalidChunkLength
from src.constants import PRICING_GPT4_PROMPT, PRICING_GPT4_GENERATION, PRICING_GPT3_5_TURBO_PROMPT, \ from dev_gpt.constants import PRICING_GPT4_PROMPT, PRICING_GPT4_GENERATION, PRICING_GPT3_5_TURBO_PROMPT, \
PRICING_GPT3_5_TURBO_GENERATION, CHARS_PER_TOKEN PRICING_GPT3_5_TURBO_GENERATION, CHARS_PER_TOKEN
from src.options.generate.templates_system import template_system_message_base from dev_gpt.options.generate.templates_system import template_system_message_base
from src.utils.string_tools import print_colored from dev_gpt.utils.string_tools import print_colored
def configure_openai_api_key(): def configure_openai_api_key():
if 'OPENAI_API_KEY' not in os.environ: if 'OPENAI_API_KEY' not in os.environ:
print_colored('You need to set OPENAI_API_KEY in your environment.', ''' print_colored('You need to set OPENAI_API_KEY in your environment.', '''
Run: Run:
gptdeploy configure --key <your_openai_api_key> dev-gpt configure --key <your_openai_api_key>
If you have updated it already, please restart your terminal. If you have updated it already, please restart your terminal.
''', 'red') ''', 'red')

View File

@@ -16,9 +16,9 @@ from hubble.executor.helper import upload_file, archive_package, get_full_versio
from jcloud.flow import CloudFlow from jcloud.flow import CloudFlow
from jina import Flow from jina import Flow
from src.constants import DEMO_TOKEN from dev_gpt.constants import DEMO_TOKEN
from src.utils.io import suppress_stdout, is_docker_running from dev_gpt.utils.io import suppress_stdout, is_docker_running
from src.utils.string_tools import print_colored from dev_gpt.utils.string_tools import print_colored
def wait_until_app_is_ready(url): def wait_until_app_is_ready(url):
@@ -42,7 +42,7 @@ def open_streamlit_app(host: str):
def redirect_callback(href): def redirect_callback(href):
print( print(
f'You need login to Jina first to use GPTDeploy\n' f'You need login to Jina first to use Dev GPT\n'
f'Please open this link if it does not open automatically in your browser: {href}' f'Please open this link if it does not open automatically in your browser: {href}'
) )
webbrowser.open(href, new=0, autoraise=True) webbrowser.open(href, new=0, autoraise=True)
@@ -52,10 +52,10 @@ def jina_auth_login():
try: try:
hubble.Client(jsonify=True).get_user_info(log_error=False) hubble.Client(jsonify=True).get_user_info(log_error=False)
except hubble.AuthenticationRequiredError: except hubble.AuthenticationRequiredError:
print('You need login to Jina first to use GPTDeploy') print('You need login to Jina first to use dev-gpt')
print_colored('', ''' print_colored('', '''
If you just created an account, it can happen that the login callback is not working. If you just created an account, it can happen that the login callback is not working.
In this case, please cancel this run, rerun your gptdeploy command and login into your account again. In this case, please cancel this run, rerun your dev-gpt command and login into your account again.
''', 'green' ''', 'green'
) )
hubble.login(prompt='login', redirect_callback=redirect_callback) hubble.login(prompt='login', redirect_callback=redirect_callback)
@@ -166,9 +166,9 @@ def deploy_on_jcloud(executor_name, microservice_path):
raise SystemExit(f''' raise SystemExit(f'''
Looks like you either ran out of credits or something went wrong in the generation and we didn't catch it. Looks like you either ran out of credits or something went wrong in the generation and we didn't catch it.
To check if you ran out of credits, please go to https://cloud.jina.ai. To check if you ran out of credits, please go to https://cloud.jina.ai.
If you have credits left, please create an issue here https://github.com/jina-ai/gptdeploy/issues/new/choose If you have credits left, please create an issue here https://github.com/jina-ai/dev-gpt/issues/new/choose
and add details on the microservice you are trying to create. and add details on the microservice you are trying to create.
In that case, you can upgrade your GPT Deploy version, if not using latest, and try again. In that case, you can upgrade your Dev-GPT version, if not using latest, and try again.
''') from e ''') from e
if i == 2: if i == 2:
raise Exception(''' raise Exception('''
@@ -200,7 +200,7 @@ It might be important to run your microservice within a docker container.
Your machine might not have all the dependencies installed. Your machine might not have all the dependencies installed.
You have 3 options: You have 3 options:
a) start the docker daemon a) start the docker daemon
b) run gptdeploy deploy... to deploy your microservice on Jina Cloud. All dependencies will be installed there. b) run dev-gpt deploy... to deploy your microservice on Jina Cloud. All dependencies will be installed there.
c) try to run your microservice locally without docker. It is worth a try but might fail. c) try to run your microservice locally without docker. It is worth a try but might fail.
''' '''
) )
@@ -242,7 +242,7 @@ jcloud:
version: 3.15.1.dev14 version: 3.15.1.dev14
labels: labels:
creator: microchain creator: microchain
name: gptdeploy name: dev-gpt
gateway: gateway:
{f"uses: {prefix}://{get_user_name(DEMO_TOKEN)}/Gateway{executor_name}:latest" if use_custom_gateway else ""} {f"uses: {prefix}://{get_user_name(DEMO_TOKEN)}/Gateway{executor_name}:latest" if use_custom_gateway else ""}
{"" if use_docker else "install-requirements: True"} {"" if use_docker else "install-requirements: True"}

View File

@@ -1,12 +1,12 @@
from src import env # noqa: F401 to make sure certain environment variables are set from dev_gpt import env # noqa: F401 to make sure certain environment variables are set
import functools import functools
import os import os
import click import click
from src.apis.gpt import configure_openai_api_key from dev_gpt.apis.gpt import configure_openai_api_key
from src.apis.jina_cloud import jina_auth_login from dev_gpt.apis.jina_cloud import jina_auth_login
from src.options.configure.key_handling import set_api_key from dev_gpt.options.configure.key_handling import set_api_key
def openai_api_key_needed(func): def openai_api_key_needed(func):
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
@@ -25,7 +25,7 @@ def exception_interceptor(func):
😱😱😱 Sorry for this experience. 😱😱😱 Sorry for this experience.
Could you please report an issue about this on our github repo? We'll try to fix it asap. Could you please report an issue about this on our github repo? We'll try to fix it asap.
https://github.com/jina-ai/gptdeploy/issues/new https://github.com/jina-ai/dev-gpt/issues/new
''') from e ''') from e
return wrapper return wrapper
@@ -68,7 +68,7 @@ def generate(
click.echo(f"Error: The path {path} you provided via --path is not empty. Please choose a directory that does not exist or is empty.") click.echo(f"Error: The path {path} you provided via --path is not empty. Please choose a directory that does not exist or is empty.")
return return
from src.options.generate.generator import Generator from dev_gpt.options.generate.generator import Generator
generator = Generator(description, path=path, model=model) generator = Generator(description, path=path, model=model)
generator.generate() generator.generate()
@@ -76,7 +76,7 @@ def generate(
@main.command() @main.command()
@path_param @path_param
def run(path): def run(path):
from src.options.run import Runner from dev_gpt.options.run import Runner
path = os.path.expanduser(path) path = os.path.expanduser(path)
path = os.path.abspath(path) path = os.path.abspath(path)
Runner().run(path) Runner().run(path)
@@ -86,7 +86,7 @@ def run(path):
@path_param @path_param
def deploy(path): def deploy(path):
jina_auth_login() jina_auth_login()
from src.options.deploy.deployer import Deployer from dev_gpt.options.deploy.deployer import Deployer
path = os.path.expanduser(path) path = os.path.expanduser(path)
path = os.path.abspath(path) path = os.path.abspath(path)
Deployer().deploy(path) Deployer().deploy(path)

View File

@@ -1,6 +1,6 @@
import os import os
from src.constants import REQUIREMENTS_FILE_NAME, DOCKER_FILE_NAME, IMPLEMENTATION_FILE_NAME, TEST_EXECUTOR_FILE_NAME from dev_gpt.constants import REQUIREMENTS_FILE_NAME, DOCKER_FILE_NAME, IMPLEMENTATION_FILE_NAME, TEST_EXECUTOR_FILE_NAME
def list_dirs_no_hidden(path): def list_dirs_no_hidden(path):
@@ -41,7 +41,7 @@ def validate_folder_is_correct(microservice_path):
if not os.path.isdir(microservice_path): if not os.path.isdir(microservice_path):
raise ValueError(f'Path {microservice_path} is not a directory') raise ValueError(f'Path {microservice_path} is not a directory')
if len(list_dirs_no_hidden(microservice_path)) == 0: if len(list_dirs_no_hidden(microservice_path)) == 0:
raise ValueError(f'Path {microservice_path} is empty. Please generate a microservice first. Type `gptdeploy generate` for further instructions.') raise ValueError(f'Path {microservice_path} is empty. Please generate a microservice first. Type `dev-gpt generate` for further instructions.')
if len(list_dirs_no_hidden(microservice_path)) > 1: if len(list_dirs_no_hidden(microservice_path)) > 1:
raise ValueError(f'Path {microservice_path} needs to contain only one folder. Please make sure that you only have one microservice in this folder.') raise ValueError(f'Path {microservice_path} needs to contain only one folder. Please make sure that you only have one microservice in this folder.')
latest_version_path = get_latest_version_path(microservice_path) latest_version_path = get_latest_version_path(microservice_path)

View File

@@ -1,5 +1,5 @@
from src.apis.jina_cloud import deploy_on_jcloud from dev_gpt.apis.jina_cloud import deploy_on_jcloud
from src.options import validate_folder_is_correct, get_executor_name, get_latest_version_path from dev_gpt.options import validate_folder_is_correct, get_executor_name, get_latest_version_path
class Deployer: class Deployer:

View File

@@ -10,16 +10,16 @@ from langchain import PromptTemplate
from langchain.schema import SystemMessage, HumanMessage, AIMessage from langchain.schema import SystemMessage, HumanMessage, AIMessage
from pydantic.dataclasses import dataclass from pydantic.dataclasses import dataclass
from src.apis import gpt from dev_gpt.apis import gpt
from src.apis.gpt import _GPTConversation from dev_gpt.apis.gpt import _GPTConversation
from src.apis.jina_cloud import process_error_message, push_executor, is_executor_in_hub from dev_gpt.apis.jina_cloud import process_error_message, push_executor, is_executor_in_hub
from src.apis.pypi import is_package_on_pypi, get_latest_package_version, clean_requirements_txt from dev_gpt.apis.pypi import is_package_on_pypi, get_latest_package_version, clean_requirements_txt
from src.constants import FILE_AND_TAG_PAIRS, NUM_IMPLEMENTATION_STRATEGIES, MAX_DEBUGGING_ITERATIONS, \ from dev_gpt.constants import FILE_AND_TAG_PAIRS, NUM_IMPLEMENTATION_STRATEGIES, MAX_DEBUGGING_ITERATIONS, \
BLACKLISTED_PACKAGES, EXECUTOR_FILE_NAME, TEST_EXECUTOR_FILE_NAME, TEST_EXECUTOR_FILE_TAG, \ BLACKLISTED_PACKAGES, EXECUTOR_FILE_NAME, TEST_EXECUTOR_FILE_NAME, TEST_EXECUTOR_FILE_TAG, \
REQUIREMENTS_FILE_NAME, REQUIREMENTS_FILE_TAG, DOCKER_FILE_NAME, IMPLEMENTATION_FILE_NAME, \ REQUIREMENTS_FILE_NAME, REQUIREMENTS_FILE_TAG, DOCKER_FILE_NAME, IMPLEMENTATION_FILE_NAME, \
IMPLEMENTATION_FILE_TAG, LANGUAGE_PACKAGES, UNNECESSARY_PACKAGES, DOCKER_BASE_IMAGE_VERSION IMPLEMENTATION_FILE_TAG, LANGUAGE_PACKAGES, UNNECESSARY_PACKAGES
from src.options.generate.templates_system import system_task_iteration, system_task_introduction, system_test_iteration from dev_gpt.options.generate.templates_system import system_task_iteration, system_task_introduction, system_test_iteration
from src.options.generate.templates_user import template_generate_microservice_name, \ from dev_gpt.options.generate.templates_user import template_generate_microservice_name, \
template_generate_possible_packages, \ template_generate_possible_packages, \
template_solve_code_issue, \ template_solve_code_issue, \
template_solve_pip_dependency_issue, template_is_dependency_issue, template_generate_playground, \ template_solve_pip_dependency_issue, template_is_dependency_issue, template_generate_playground, \
@@ -27,9 +27,9 @@ from src.options.generate.templates_user import template_generate_microservice_n
template_chain_of_thought, template_summarize_error, \ template_chain_of_thought, template_summarize_error, \
template_solve_apt_get_dependency_issue, template_pm_task_iteration, \ template_solve_apt_get_dependency_issue, template_pm_task_iteration, \
template_pm_test_iteration template_pm_test_iteration
from src.options.generate.ui import get_random_employee from dev_gpt.options.generate.ui import get_random_employee
from src.utils.io import persist_file, get_all_microservice_files_with_content, get_microservice_path from dev_gpt.utils.io import persist_file, get_all_microservice_files_with_content, get_microservice_path
from src.utils.string_tools import print_colored from dev_gpt.utils.string_tools import print_colored
@dataclass @dataclass
@@ -148,7 +148,7 @@ metas:
with open(os.path.join(os.path.dirname(__file__), 'static_files', 'microservice', 'jina_wrapper.py'), 'r', encoding='utf-8') as f: with open(os.path.join(os.path.dirname(__file__), 'static_files', 'microservice', 'jina_wrapper.py'), 'r', encoding='utf-8') as f:
microservice_executor_boilerplate = f.read() microservice_executor_boilerplate = f.read()
microservice_executor_code = microservice_executor_boilerplate.replace('class GPTDeployExecutor(Executor):', microservice_executor_code = microservice_executor_boilerplate.replace('class Dev-GPTExecutor(Executor):',
f'class {microservice_name}(Executor):') f'class {microservice_name}(Executor):')
persist_file(microservice_executor_code, os.path.join(MICROSERVICE_FOLDER_v1, EXECUTOR_FILE_NAME)) persist_file(microservice_executor_code, os.path.join(MICROSERVICE_FOLDER_v1, EXECUTOR_FILE_NAME))
@@ -194,7 +194,7 @@ metas:
tag_name=REQUIREMENTS_FILE_TAG, tag_name=REQUIREMENTS_FILE_TAG,
)[REQUIREMENTS_FILE_NAME] )[REQUIREMENTS_FILE_NAME]
# I deactivated this because 3.5-turbo was halucinating packages that were not needed # I deactivated this because 3.5-turbo was hallucinating packages that were not needed
# now, in the first iteration the default dockerfile is used # now, in the first iteration the default dockerfile is used
# self.generate_and_persist_file( # self.generate_and_persist_file(
# section_title='Generate Dockerfile', # section_title='Generate Dockerfile',
@@ -449,8 +449,8 @@ pytest
continue continue
print(f''' print(f'''
You can now run or deploy your microservice: You can now run or deploy your microservice:
gptdeploy run --path {self.microservice_root_path} dev-gpt run --path {self.microservice_root_path}
gptdeploy deploy --path {self.microservice_root_path} dev-gpt deploy --path {self.microservice_root_path}
''' '''
) )
return 0 return 0

View File

@@ -1,4 +1,4 @@
FROM jinaai/gpt-dev:{{DOCKER_BASE_IMAGE_VERSION}} FROM jinaai/dev-gpt:{{DOCKER_BASE_IMAGE_VERSION}}
RUN apt-get install --no-install-recommends -y {{APT_GET_PACKAGES}} RUN apt-get install --no-install-recommends -y {{APT_GET_PACKAGES}}

View File

@@ -4,7 +4,7 @@ import json
from .microservice import func from .microservice import func
class GPTDeployExecutor(Executor): class DevGPTExecutor(Executor):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)

View File

@@ -1,4 +1,4 @@
from src.options.generate.templates_user import not_allowed_docker_string, not_allowed_function_string from dev_gpt.options.generate.templates_user import not_allowed_docker_string, not_allowed_function_string
template_system_message_base = f'''It is September 2021. template_system_message_base = f'''It is September 2021.

View File

@@ -1,6 +1,6 @@
from langchain import PromptTemplate from langchain import PromptTemplate
from src.constants import IMPLEMENTATION_FILE_NAME from dev_gpt.constants import IMPLEMENTATION_FILE_NAME
general_guidelines_string = '''The code you write is production ready. Every file starts with comments describing what the code is doing before the first import. Comments can only be written within code blocks. general_guidelines_string = '''The code you write is production ready. Every file starts with comments describing what the code is doing before the first import. Comments can only be written within code blocks.
Then all imports are listed. Then all imports are listed.
@@ -345,7 +345,7 @@ The playground must look like it was made by a professional designer.
All the ui elements are well thought out to make them visually appealing and easy to use. All the ui elements are well thought out to make them visually appealing and easy to use.
Don't mention the word Playground in the title. Don't mention the word Playground in the title.
The playground contains many emojis that fit the theme of the playground and has an emoji as favicon. The playground contains many emojis that fit the theme of the playground and has an emoji as favicon.
The playground encourages the user to deploy their own microservice by clicking on this link: https://github.com/jina-ai/gptdeploy The playground encourages the user to deploy their own microservice by clicking on this link: https://github.com/jina-ai/dev-gpt
The playground uses the following code to send a request to the microservice: The playground uses the following code to send a request to the microservice:
``` ```
from jina import Client, Document, DocumentArray from jina import Client, Document, DocumentArray
@@ -359,7 +359,7 @@ The playground displays a code block containing the microservice specific curl c
While the exact payload in the curl might change, the host and deployment ID always stay the same. Example: While the exact payload in the curl might change, the host and deployment ID always stay the same. Example:
``` ```
deployment_id = os.environ.get("K8S_NAMESPACE_NAME", "") deployment_id = os.environ.get("K8S_NAMESPACE_NAME", "")
host = f'https://gptdeploy-{{deployment_id.split("-")[1]}}.wolf.jina.ai/post' if deployment_id else "http://localhost:8080/post" host = f'https://dev-gpt-{{deployment_id.split("-")[1]}}.wolf.jina.ai/post' if deployment_id else "http://localhost:8080/post"
with st.expander("See curl command"): with st.expander("See curl command"):
st.code( st.code(
f'curl -X \\'POST\\' \\'host\\' -H \\'accept: application/json\\' -H \\'Content-Type: application/json\\' -d \\'{{{{"data": [{{{{"text": "hello, world!"}}}}]}}}}\\'', f'curl -X \\'POST\\' \\'host\\' -H \\'accept: application/json\\' -H \\'Content-Type: application/json\\' -d \\'{{{{"data": [{{{{"text": "hello, world!"}}}}]}}}}\\'',

View File

@@ -0,0 +1 @@
from dev_gpt.options.run.runner import Runner

View File

@@ -1,5 +1,5 @@
from src.apis.jina_cloud import run_locally from dev_gpt.apis.jina_cloud import run_locally
from src.options import validate_folder_is_correct, get_executor_name, get_latest_version_path from dev_gpt.options import validate_folder_is_correct, get_executor_name, get_latest_version_path
class Runner(): class Runner():

File diff suppressed because it is too large Load Diff

View File

@@ -1,702 +0,0 @@
newmtl Medieval_bone0
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone0.jpg
newmtl Medieval_bone1
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone1_1.jpg
newmtl Medieval_bone2
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone2_2.jpg
newmtl Medieval_bone3
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone3_3.jpg
newmtl Medieval_bone4
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone4_4.jpg
newmtl Medieval_bone5
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone5_5.jpg
newmtl Medieval_bone6
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone6_6.jpg
newmtl Medieval_bone7
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone7_7.jpg
newmtl Medieval_bone8
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone8_8.jpg
newmtl Medieval_bone9
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone9_9.jpg
newmtl Medieval_bone10
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone10_10.jpg
newmtl Medieval_bone11
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone11_11.jpg
newmtl Medieval_bone12
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone12_12.jpg
newmtl Medieval_bone13
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone13_13.jpg
newmtl Medieval_bone14
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone14_14.jpg
newmtl Medieval_bone15
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone15_15.jpg
newmtl Medieval_bone16
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone16_16.jpg
newmtl Medieval_bone17
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone17_17.jpg
newmtl Medieval_bone18
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone18_18.jpg
newmtl Medieval_bone19
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone19_19.jpg
newmtl Medieval_bone20
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone20_20.jpg
newmtl Medieval_bone21
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone21_21.jpg
newmtl Medieval_bone22
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone22_22.jpg
newmtl Medieval_bone23
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone23_23.jpg
newmtl Medieval_bone24
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone24_24.jpg
newmtl Medieval_bone25
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone25_25.jpg
newmtl Medieval_bone26
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone26_26.jpg
newmtl Medieval_bone27
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone27_27.jpg
newmtl Medieval_bone28
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone28_28.jpg
newmtl Medieval_bone29
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone29_29.jpg
newmtl Medieval_bone30
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone30_30.jpg
newmtl Medieval_bone31
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone31_31.jpg
newmtl Medieval_bone32
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone32_32.jpg
newmtl Medieval_bone33
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone33_33.jpg
newmtl Medieval_bone34
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone34_34.jpg
newmtl Medieval_bone35
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone35_35.jpg
newmtl Medieval_bone36
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone36_36.jpg
newmtl Medieval_bone37
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone37_37.jpg
newmtl Medieval_bone38
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone38_38.jpg
newmtl Medieval_bone39
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone39_39.jpg
newmtl Medieval_bone40
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone40_40.jpg
newmtl Medieval_bone41
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone41_41.jpg
newmtl Medieval_bone42
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone42_42.jpg
newmtl Medieval_bone43
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone43_43.jpg
newmtl Medieval_bone44
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone44_44.jpg
newmtl Medieval_bone45
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone45_45.jpg
newmtl Medieval_bone46
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone46_46.jpg
newmtl Medieval_bone47
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone47_47.jpg
newmtl Medieval_bone48
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone48_48.jpg
newmtl Medieval_bone49
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone49_49.jpg
newmtl Medieval_bone50
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone50_50.jpg
newmtl Medieval_bone51
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone51_51.jpg
newmtl Medieval_bone52
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone52_52.jpg
newmtl Medieval_bone53
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone53_53.jpg
newmtl Medieval_bone54
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone54_54.jpg
newmtl Medieval_bone55
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone55_55.jpg
newmtl Medieval_bone56
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone56_56.jpg
newmtl Medieval_bone57
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone57_57.jpg
newmtl Medieval_bone58
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone58_58.jpg
newmtl Medieval_bone59
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone59_59.jpg
newmtl Medieval_bone60
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone60_60.jpg
newmtl Medieval_bone61
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone61_61.jpg
newmtl Medieval_bone62
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone62_62.jpg
newmtl Medieval_bone63
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone63_63.jpg
newmtl Medieval_bone64
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone64_64.jpg
newmtl Medieval_bone65
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone65_65.jpg
newmtl Medieval_bone66
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone66_66.jpg
newmtl Medieval_bone67
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone67_67.jpg
newmtl Medieval_bone68
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone68_68.jpg
newmtl Medieval_bone69
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone69_69.jpg
newmtl Medieval_bone70
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone70_70.jpg
newmtl Medieval_bone71
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone71_71.jpg
newmtl Medieval_bone72
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone72_72.jpg
newmtl Medieval_bone73
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone73_73.jpg
newmtl Medieval_bone74
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone74_74.jpg
newmtl Medieval_bone75
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone75_75.jpg
newmtl Medieval_bone76
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone76_76.jpg
newmtl Medieval_bone77
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone77_77.jpg
newmtl Medieval_bone78
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone78_78.jpg
newmtl Medieval_bone79
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone79_79.jpg
newmtl Medieval_bone80
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone80_80.jpg
newmtl Medieval_bone81
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone81_81.jpg
newmtl Medieval_bone82
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone82_82.jpg
newmtl Medieval_bone83
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone83_83.jpg
newmtl Medieval_bone84
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone84_84.jpg
newmtl Medieval_bone85
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone85_85.jpg
newmtl Medieval_bone86
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone86_86.jpg
newmtl Medieval_bone87
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone87_87.jpg
newmtl Medieval_bone88
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone88_88.jpg
newmtl Medieval_bone89
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone89_89.jpg
newmtl Medieval_bone90
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone90_90.jpg
newmtl Medieval_bone91
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone91_91.jpg
newmtl Medieval_bone92
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone92_92.jpg
newmtl Medieval_bone93
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone93_93.jpg
newmtl Medieval_bone94
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone94_94.jpg
newmtl Medieval_bone95
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone95_95.jpg
newmtl Medieval_bone96
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone96_96.jpg
newmtl Medieval_bone97
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone97_97.jpg
newmtl Medieval_bone98
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone98_98.jpg
newmtl Medieval_bone99
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone99_99.jpg
newmtl Medieval_bone100
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone100_100.jpg
newmtl Medieval_bone101
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone101_101.jpg
newmtl Medieval_bone102
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone102_102.jpg
newmtl Medieval_bone103
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone103_103.jpg
newmtl Medieval_bone104
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone104_104.jpg
newmtl Medieval_bone105
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone105_105.jpg
newmtl Medieval_bone106
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone106_106.jpg
newmtl Medieval_bone107
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone107_107.jpg
newmtl Medieval_bone108
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone108_108.jpg
newmtl Medieval_bone109
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone109_109.jpg
newmtl Medieval_bone110
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone110_110.jpg
newmtl Medieval_bone111
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone111_111.jpg
newmtl Medieval_bone112
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone112_112.jpg
newmtl Medieval_bone113
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone113_113.jpg
newmtl Medieval_bone114
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone114_114.jpg
newmtl Medieval_bone115
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone115_115.jpg
newmtl Medieval_bone116
Ka 0 0 0
Ns 6.82096
Ks 1 1 1
Kd 0.930023 0.847167 0.686777
map_Kd Medieval_bone116_116.jpg

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 437 KiB

After

Width:  |  Height:  |  Size: 437 KiB

View File

@@ -7,7 +7,7 @@
set -ex set -ex
INIT_FILE='src/__init__.py' INIT_FILE='dev_gpt/__init__.py'
VER_TAG='__version__ = ' VER_TAG='__version__ = '
RELEASENOTE='./node_modules/.bin/git-release-notes' RELEASENOTE='./node_modules/.bin/git-release-notes'

View File

@@ -8,7 +8,7 @@ def read_requirements():
try: try:
libinfo_py = path.join('src', '__init__.py') libinfo_py = path.join('dev_gpt', '__init__.py')
libinfo_content = open(libinfo_py, 'r', encoding='utf8').readlines() libinfo_content = open(libinfo_py, 'r', encoding='utf8').readlines()
version_line = [l.strip() for l in libinfo_content if l.startswith('__version__')][ version_line = [l.strip() for l in libinfo_content if l.startswith('__version__')][
0 0
@@ -26,14 +26,14 @@ setup(
long_description_content_type='text/markdown', long_description_content_type='text/markdown',
author='Florian Hönicke', author='Florian Hönicke',
author_email='florian.hoenicke@jina.ai', author_email='florian.hoenicke@jina.ai',
url='https://github.com/jina-ai/gptdeploy', url='https://github.com/jina-ai/dev-gpt',
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
install_requires=read_requirements(), install_requires=read_requirements(),
scripts=['gptdeploy.py'], scripts=['dev_gpt.py'],
entry_points={ entry_points={
'console_scripts': [ 'console_scripts': [
'gptdeploy = src:main', 'dev-gpt = dev_gpt:main',
], ],
}, },

View File

@@ -1,3 +0,0 @@
__version__ = '0.18.35'
from src.cli import main

View File

@@ -1 +0,0 @@
from src.options.run.runner import Runner

View File

@@ -2,7 +2,7 @@ import os
import pytest import pytest
from src.options.generate.generator import Generator from dev_gpt.options.generate.generator import Generator
# The cognitive difficulty level is determined by the number of requirements the microservice has. # The cognitive difficulty level is determined by the number of requirements the microservice has.

View File

@@ -1,8 +1,8 @@
import os import os
from src.apis.jina_cloud import is_executor_in_hub from dev_gpt.apis.jina_cloud import is_executor_in_hub
from src.apis.pypi import is_package_on_pypi, clean_requirements_txt from dev_gpt.apis.pypi import is_package_on_pypi, clean_requirements_txt
from src.options.generate.generator import Generator from dev_gpt.options.generate.generator import Generator
def test_is_microservice_in_hub(): def test_is_microservice_in_hub():

View File

@@ -1,6 +1,6 @@
import pytest import pytest
from src.options.generate.generator import Generator from dev_gpt.options.generate.generator import Generator
def create_code_block(with_backticks, asterisks, with_highlight_info, file_name, start_inline, content): def create_code_block(with_backticks, asterisks, with_highlight_info, file_name, start_inline, content):
code_block = f''' code_block = f'''

View File

@@ -1,4 +1,4 @@
from src.apis.jina_cloud import clean_color_codes from dev_gpt.apis.jina_cloud import clean_color_codes
def test_clean_color_codes(): def test_clean_color_codes():