slogan3

Ontwerp een OpenAI-integratie voor geautomatiseerde AI-gestuurde API-documentatie

description

Met deze prompt kan de gebruiker een OpenAI-integratie ontwerpen die automatisch API-documentatie genereert en bijwerkt, wat handmatig werk vermindert, consistentie verhoogt en zorgt dat documentatie altijd up-to-date is met de laatste codewijzigingen. Dit verbetert de ontwikkelaarservaring en versnelt de release-cyclus.

prompt

Help me een OpenAI-integratie te ontwerpen die automatisch API-documentatie genereert en bijwerkt op basis van mijn codebase en API-specificaties. Beschrijf de programmeertaal en framework die ik gebruik: <beschrijf de programmeertaal en het framework>. Beschrijf het formaat en de structuur van mijn API-specificaties: <beschrijf het formaat en de structuur>. W ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een gedetailleerd plan voor het ontwerpen van een OpenAI-integratie die automatisch API-documentatie genereert en bijwerkt op basis van je Python Flask-codebase en OpenAPI 3.0 YAML-specificaties. **1. Programmeertaal en framework** - **Taal:** Python - **Framework:** Flask (voor je API) - **Omgeving:** Linux server met Docker **2. OpenAPI-specificaties** - **Formaat:** YAML - **Structuur:** - `openapi: 3.0.0` - `info:` (titel, versie, beschrijving) - `servers:` (basis-URL) - `paths:` (API-endpoints, methoden, parameters, responses) - `components:` (schemas, parameters, beveiliging) **3. Welke details moeten worden opgenomen in de documentatie?** - **Endpoints:** URL paden en HTTP-methoden (GET, POST, etc.) - **Parameters:** Query parameters, path parameters, body schema’s (JSON) - **Responsformaten:** JSON-structuren en voorbeelden - **Voorbeelden:** Voorbeeldverzoeken en -antwoorden, inclusief statuscodes - **Authenticatie:** indien van toepassing (API-sleutels, OAuth) **4. Automatiseren van documentatiegeneratie en -bijwerking** **A. Extractie van API-specificaties uit codebase** - Gebruik de Flask-annotaties en route-definities om automatisch de endpoints en parameters te detecteren. - Of gebruik een bestaande tool zoals [Flasgger](https://github.com/flasgger/flasgger) of [apispec](https://apispec.readthedocs.io/en/latest/) om OpenAPI-specificaties te genereren vanuit code. **B. Generatie en bijwerking van YAML-bestanden** - Laad de gegenereerde specificaties en converteer ze naar YAML. - Bewaar de specificaties in je project, bijvoorbeeld in `api_spec.yaml`. **C. Integratie met OpenAI voor documentatie** - Gebruik de OpenAI API om de specificaties te verbeteren, samenvattingen te maken of te formatteren. - Automatisch genereren van beschrijvingen, voorbeelden en uitleg op basis van de specificaties. **5. OpenAI-modellen en API-functies** - **Modellen:** - `gpt-4` of `gpt-4-turbo` voor nauwkeurigheid en snelheid - Of `gpt-3.5-turbo` als kosten een rol spelen - **Aanbevolen functies:** - Prompten met de YAML-specificaties om samenvattingen, beschrijvingen en voorbeelden te genereren - Genereren van natuurlijke taalbeschrijvingen voor endpoints en parameters - Up-to-date houden door periodiek de specificaties te herhalen en te verbeteren **6. Voorbeeld API-aanroepen en integratieadviezen** **A. Genereren van documentatie met OpenAI** ```python import openai # Stel je API-sleutel in openai.api_key = 'jouw-openai-api-sleutel' # Laad je OpenAPI-specificatie with open('api_spec.yaml', 'r') as file: api_spec_yaml = file.read() # Prompt voor het genereren van een samenvatting of beschrijving prompt = f""" Je bent een expert in API-documentatie. Gebruik de volgende OpenAPI specificatie in YAML formaat om een overzicht te genereren, inclusief korte beschrijvingen van endpoints, parameters en voorbeeld responses. Specificatie: {api_spec_yaml} """ response = openai.ChatCompletion.create( model='gpt-4-turbo', messages=[ {"role": "system", "content": "Genereer een heldere en beknopte API-documentatie."}, {"role": "user", "content": prompt} ], temperature=0.2, max_tokens=1500 ) print(response.choices[0].message['content']) ``` **B. Periodieke bijwerking** - Plan een cronjob of CI/CD-pipeline die de specificaties bijwerkt en de documentatie hergenereren. **C. Automatiseringsadvies** - Gebruik Docker om je script te draaien, bijvoorbeeld in een container met de benodigde Python- en OpenAI-bibliotheken. - Stel een webhook of CI/CD pipeline in die elke keer dat je code wijzigt, de specificaties genereert en de documentatie bijwerkt. **7. Samenvatting van stappen** 1. Gebruik tools zoals Flask-apispec of Flasgger om automatisch OpenAPI 3.0 specificaties te genereren uit je Flask-code. 2. Sla deze specificaties op in YAML-formaat. 3. Maak een script dat deze YAML inleest en via de OpenAI API de documentatie aanvult en verbetert. 4. Implementeer een automatische routine (bijvoorbeeld CI/CD) om deze documentatie periodiek te actualiseren. 5. Host of serveer de gegenereerde documentatie via een webpagina of API-endpoint. Met deze aanpak houd je je API-documentatie actueel, duidelijk en gebruiksvriendelijk, met minimale handmatige inspanning.
provider: deepseek
model: deepseek-chat
Absoluut. Hier is een gedetailleerd ontwerp voor een OpenAI-geïntegreerd systeem voor het automatisch genereren en bijwerken van API-documentatie voor jouw Flask/OpenAPI 3.0-omgeving. ### 1. Overzicht van de Integratie-architectuur Het ontwerp bestaat uit twee hoofdcomponenten die in Docker-containers draaien: 1. **Analyse- en Generatie-Service (Python Script):** Een service die jouw codebase en OpenAPI YAML-bestanden leest, analyseert en prompts samenstelt voor de OpenAI API. 2. **Documentatie-Updater (Python Script):** Een service die de gegenereerde content van OpenAI ontvangt en deze gebruikt om jouw bestaande OpenAPI YAML-bestanden bij te werken. Deze services kunnen worden geactiveerd door een `git push` (via een webhook), een cronjob, of handmatig. --- ### 2. Aanbevolen OpenAI Modellen en API's Voor nauwkeurigheid en het begrijpen van complexe codecontext raad ik de volgende modellen aan: * **Primair Model: `gpt-4-turbo-preview` (gpt-4-0125-preview)** * **Reden:** Heeft een zeer grote contextwindow (128k tokens), waardoor het complete codebestanden, bestaande OpenAPI-specs en instructies in één prompt kan verwerken. Dit leidt tot superieure nauwkeurigheid en consistentie. * **Kostenefficiënt Alternatief: `gpt-3.5-turbo-0125`** * **Reden:** Zeer snel en kosteneffectief. Geschikt voor eenvoudigere API's of als je eerst een prototype bouwt. Kan soms details missen in complexe scenario's. * **Gebruikte API:** De **Chat Completion API**. Dit is de standaard API voor interactie met de bovenstaande modellen. --- ### 3. Details voor Opname in de Documentatie (zoals gevraagd) De prompt aan OpenAI moet specifiek vragen om de volgende elementen in de documentatie op te nemen, afgestemd op de OpenAPI 3.0-specificatie: * **Endpoints:** Alle gedetecteerde routes (bijv. `GET /api/v1/users`, `POST /api/v1/items`). * **Parameters:** * **Query Parameters:** Naam, type (string, integer, etc.), verplicht/optioneel, beschrijving, voorbeeldwaarde. * **Path Parameters:** (bijv. `/users/<id>`) Naam, type, beschrijving. * **Request Body:** Voor `POST`/`PUT`-requests, een gedetailleerd schema van het verwachte JSON-object. * **Response Formaten:** * HTTP-statuscodes (200, 201, 400, 404, 500, etc.). * Een `application/json` schema voor elke belangrijke statuscode, inclusief een realistisch voorbeeld van de JSON-response. * **Beschrijvingen:** Een duidelijke, beknopte beschrijving in natuurlijke taal voor elke endpoint en parameter. --- ### 4. Voorbeeld van een API-aanroep en Prompt Structuur Stel je voor dat je een script `generate_docs.py` hebt. Het zou er ongeveer zo uit kunnen zien: ```python import openai import yaml from pathlib import Path # Stel je API key in openai.api_key = os.getenv("OPENAI_API_KEY") # 1. Lees je code en bestaande OpenAPI-spec flask_app_code = Path("./app.py").read_text() existing_openapi_spec = Path("./openapi/openapi.yaml").read_text() # 2. Construeer een gedetailleerde prompt prompt = f""" Jij bent een expert in het genereren van OpenAPI 3.0.0 YAML-specificaties. Analyseer de volgende Python Flask code en het bestaande OpenAPI-document. Genereer een uitgebreide, correct geformatteerde OpenAPI 3.0.0 YAML-sectie voor de endpoints die je in de code vindt. Update het bestaande document waar nodig, maar behoud algemene informatie zoals `info`, `servers`, en component-schema's. Focus op: - Correcte HTTP-methodes (get, post, etc.) en paths. - Gedetailleerde parameters (query, path, body). - JSON-schema's voor requestBody en responses, inclusief realistische voorbeelden. - Duidelijke beschrijvingen. # Hier is de Flask code: {flask_app_code} # Hier is het bestaande OpenAPI-document: {existing_openapi_spec} Genereer nu de complete OpenAPI YAML-specificatie. Geef alleen de YAML zonder afleidende tekst. """ # 3. Doe de aanroep naar de OpenAI API response = openai.chat.completions.create( model="gpt-4-turbo-preview", # Gebruik het krachtigste model voor beste resultaten messages=[ {"role": "system", "content": "Je bent een gespecialiseerde assistent voor het genereren van nauwkeurige en goed geformatteerde OpenAPI YAML-documentatie."}, {"role": "user", "content": prompt} ], temperature=0.1 # Zeer lage temperature voor voorspelbare, feitelijke output ) # 4. Verwerk de response generated_yaml = response.choices[0].message.content # Sla het nieuwe bestand op (of gebruik het om het oude te updaten) with open('./openapi/openapi_updated.yaml', 'w') as f: f.write(generated_yaml) print("OpenAPI documentatie succesvol gegenereerd!") ``` --- ### 5. Integratieadviezen en Best Practices 1. **Dockerisering:** * Creëer een `Dockerfile` voor je documentatie-generatieservice. * Gebruik `docker-compose.yml` om je Flask-app en de documentatieservice samen te orkestreren. * Mount je codebase als een volume in de documentatie-container, zodat deze altijd toegang heeft tot de laatste versie. 2. **Veiligheid:** * **Sla je OpenAI API-key NOOIT op in de code.** Gebruik omgevingsvariabelen (`OPENAI_API_KEY`) in je Docker-compose file. * `.gitignore` je gegenereerde YAML-bestanden niet, zodat documentatieversiebeheerd wordt met je code. 3. **Triggerstrategie:** * **Git Hooks (Aanbevolen):** Configureer een `post-merge` en `post-commit` hook om de documentatie automatisch te genereren bij lokale wijzigingen. Voor de server, gebruik een GitHub/GitLab webhook die een CI/CD-pipeline (bijv. GitHub Actions) activeert die de documentatie build en deployt. * **Cronjob:** Zet een simpele cronjob in je container die periodiek (bijv. elke nacht) het generatiescript draait. 4. **Validatie:** * Voeg een stap toe na generatie om de output YAML te valideren met een tool zoals `swagger-cli` of `openapi-spec-validator`. Dit vangt eventuele formatfouten van de AI op. ```bash # Voorbeeld van een validatiestap in je script pip install openapi-spec-validator openapi-spec-validator ./openapi/openapi_updated.yaml ``` 5. **Iteratief Verbeteren:** * Je prompt is cruciaal. Wees zo specifiek mogelijk. Hoe meer context en duidelijke instructies je geeft, hoe beter het resultaat. * Je kunt in de prompt vragen om de documentatie in een bepaalde stijl te schrijven of bepaalde zinsbouw te gebruiken. Met dit ontwerp creëer je een robuuste, geautomatiseerde pijplijn die je API-documentatie nauwkeurig en up-to-date houdt met de minimale handmatige inspanning.