Entwicklungswerkzeuge
Avetis Grigoryan
Senior Entwickler
19. Oktober 2023
Eine Low-Code-Plattform, die die Einfachheit von No-Code mit der Leistungsfähigkeit von Full-Code verbindet 🚀.
Jetzt kostenlos loslegen
19. Oktober 2023
-
6m
min lesen

Eine kurze Nacherzählung des Google-Dokuments mit einer Übersetzung in die gewünschte Sprache

Avetis Grigoryan
Senior Entwickler
Inhaltsübersicht
Bist du es leid, deine Dokumente in eine Übersetzungssoftware zu kopieren, nur um mit deinen internationalen Kunden zu kommunizieren? Oder vielleicht willst du die Zusammenarbeit an einer Forschungsarbeit mit einem Partner, der eine andere Sprache spricht, automatisieren. Was auch immer der Fall sein mag, wir haben aufregende Neuigkeiten für dich! Dank der Integration von Google Docs und OpenAI und mit Hilfe von Latenode.com können wir dir einen optimierten Arbeitsablauf anbieten, der es dir ermöglicht, einen Link zu deinem Google-Dokument zu erstellen und es in die gewünschte Sprache zu übersetzen. Verschwende keine Zeit mehr mit manuellen Übersetzungen - lass die Technik für dich arbeiten!

Vorbereiten

Zuerst musst du wie immer sicherstellen, dass du alles hast, was du zum Erstellen einer Kette brauchst: ein Konto bei ChatGPT und einen persönlichen Schlüssel sowie ein Google-Konto und denselben Token;

In Latenode wurde vor nicht allzu langer Zeit die Integration mit vielen Diensten hinzugefügt, während die genauen Dokumente noch nicht implementiert wurden, aber bald soll es auch hier eng werden. Fürs Erste holen wir uns das Token also auf die alte Art und Weise gemäß den Anweisungen in unserem Artikel, nur wählen wir in der Liste den Bereich "Google Docs API v..." unter "https://www.googleapis.com/auth/documents";

Der persönliche Schlüssel in ChatGPT kann hier in den Profileinstellungen eingesehen oder erstellt werden:

Erstellen einer Kette in Latenode

Als erstes erstellen wir, wie immer, einen Knoten: "+ Knoten hinzufügen" => "Http" => "Webhook";

Lass uns seine Adresse sofort kopieren;

Speichere die Änderungen;

Wir werden auch eine Voranfrage für den Restkunden (Postman, Insomnia) vorbereiten:

REQ for rest client:


  curl --request POST
  --url https://webhook.latenode.com/69/dev/8b8b0b68-df1f-45ab-b1a3-94baf3a0626d
  --header 'Content-Type: application/x-www-form-urlencoded'
  --data 'personalTokenChatGPT=Dein ChatGPT-Token'
  --data 'googleDocToken=Dein google-Token'
  --data 'docID=ID des gewünschten google-Dokuments'
  --data 'Sprache=Deutsch'

Ändere den Webhook-Link in deinen;

Dann ersetzen wir unseren ChatGPT-Schlüssel in personalTokenChatGPT;

Als nächstes fügst du dein Google Doc-Token in googleDocToken ein;

Ändere docID in die ID des gewünschten Dokuments, die du aus der Adressleiste übernehmen kannst;

Bei Bedarf kannst du die Übersetzungssprache im Parameter Sprache ändern;

Füge als Nächstes den Knoten "HTTP-Anfrage" hinzu, um den Inhalt des Dokuments abzurufen: "+ Knoten hinzufügen" => "Http" => "HTTP-Anfrage";

Speichern;
Verbinde die Knotenpunkte miteinander;
Starte und rufe die Kette auf, um Daten zwischen den Knotenpunkten zu übertragen;

Bilden wir das Feld "Url": Wir beginnen mit der Adresse"https://docs.googleapis.com/v1/documents/", gefolgt von dem Parameter body.docID aus dem Knoten "Webhook";

Überprüfen wir, ob die Standardmethode "GET" ist;

Unter Überschriften fügen wir zwei hinzu:

- Content-Type mit dem Wert: application/json
- Authorization in den Wert Bearer ein, dann wähle den Parameter aus dem "Webhook"-Knoten mit dem Namen: body.googleDocToken
Lass uns die Änderungen speichern;

Verbinde die Knotenpunkte miteinander;
Starte und rufe die Kette auf, um Daten zwischen den Knotenpunkten zu übertragen;

Füge als Nächstes einen "JavaScript"-Knoten hinzu, um den Inhalt des Dokuments abzurufen: "+ Knoten hinzufügen" => "Code" => "JavaScript";

Füge den Inhalt aus dem Block unten ein:


  const responseResult = JSON.parse(data["{{2.body.body.content}}"]);
  let docText = "";

  function parseResponse(response) {
     const tempArray = [];
     if (typeof response !== String) {
        tempArray.push(...response);
     } else {
        tempArray.push(JSON.parse(...response));
     }
     Array.isArray(response)
          ? response.forEach(
              (arrayItem) => { 
                 if (arrayItem.paragraph) {
                    arrayItem.paragraph.elements.forEach(paragraphItem => {
                       docText += `${paragraphItem.textRun.content}`;
                    });
                 }
              }
           )
          : Object.fromEntries(
              Object.entries(response)
                  .map(([objectItemKey, objectItemValue]) => [objectItemKey, parseResponse(objectItemValue, s)]));
  }
  parseResponse(responseResult);
  const resultRawJSON = JSON.stringify({
    "model":"text-davinci-003",
    "prompt":`Write a brief retelling of the main point of the text on ${data["{{1.body.language}}"]}: ${docText}`,
    "temperature":0,
    "max_tokens":1400
  });
  return {
     resultRawJSON
  }

Speichern;
Verbinde die Knotenpunkte miteinander;
Starte und rufe die Kette auf, um Daten zwischen den Knotenpunkten zu übertragen;

Öffne die Einstellungen des Knotens "JavaScript" erneut;

Let's check in all constructions like "data["{{2.body.body.content}}"]" and "data["{{2.body.body.content}}"]" that the node numbers correspond to those from which we receive data, if not we replace them with the necessary ones (remind that 1 is the node number which is written immediately below the node name above the node type, then if it is a query then we select the object field responsible for the type of data sent/received - body for forms or query for query parameters);

Wenn es Änderungen gab, lass sie uns speichern;

Jetzt fügen wir eine weitere "Http-Anfrage" hinzu: "+ Knoten hinzufügen" => "Http" => "HTTP-Anfrage";

Speichern;
Verbinde die Knotenpunkte miteinander;
Starte und rufe die Kette auf, um Daten zwischen den Knotenpunkten zu übertragen;

Bilden wir das "Url"-Feld: Wir setzen die Adresse"https://api.openai.com/v1/completions" an den Anfang;

Ändere die Anfragemethode in "POST";

Beim Body in "raw": ersetzen wir die Variable resultRawJSON aus dem vorherigen "JavaScript"-Knoten;

Unter Überschriften fügen wir zwei hinzu:

- Content-Type mit dem Wert: application/json
- Authorization mit dem Wert: Bearer, dann wähle den Parameter aus dem "Webhook"-Knoten mit dem Namen: body.personalTokenChatGPT
Speichern wir die Änderungen;

Um den von ChatGPT empfangenen Text zurückzugeben, fügen wir am Ende den Knoten "Webhook-Antwort" hinzu: "+ Knoten hinzufügen" => "Http" => "Webhook-Antwort";

Speichern;
Verbinde die Knotenpunkte miteinander;
Führe die Kette aus und rufe sie auf, um Daten zwischen den Knotenpunkten zu übertragen;

Fülle die Antwort mit der Ready-Variante aus, wenn es eine erfolgreiche Antwort aus dem vorherigen Request Body gab.choices.[0].text:

Lass uns die ganze Kette durchlaufen und sie aufrufen;

Danach sollte die Antwort eine kurze Paraphrase des Dokuments auf Englisch liefern;

Die fertige Kette wird am Ende so aussehen;

Danke für deine Aufmerksamkeit, wir sehen uns in neuen Artikeln!😉

Links:


Basic:

Latenode

ChatGPT

ChatGPT API Schlüssel

Info:

ChatGPT API Dokumentation

Google API-Dokumentation

Verwandte Blogs

Anwendungsfall

Unterstützt von