from openai import OpenAI
ModuleNotFoundError: No module named 'openai'
December 6, 2023
Fragen Sie ChatGPT via API zum Sentiment des ersten Texts aus dem Germeval-2018-Datensatz (Train).
Hinweise:
OpenAI hat eine neue API (Stand: 2023-11-23). Der Code der alten API bricht. 💔 \(\square\)
Module importieren:
Anmelden bei OpenAI:
Dieses Verfahren setzt voraus, dass in .Renviron
die Variable OPENAI_API_KEY
hinterlegt ist. \(\square\)
Textschnipsel, das zu klassifizieren ist:
Prompt definieren:
Anfrage an die API, in eine Funktion gepackt:
Und los:
---
date: 2023-12-06
draft: FALSE # ACHTUNG DRAFT STEHT AUF TRUE!
title: chatgpt-sentiment-simple
extype: string
exsolution: ""
categories:
- textmining
- nlp
- transformer
- chatgpt
- sentiment
execute:
error: true
---
```{r global-knitr-options, include=FALSE}
knitr::opts_chunk$set(fig.pos = 'H',
fig.asp = 0.618,
fig.width = 4,
fig.cap = "",
fig.path = "",
fig.align = "center",
echo = TRUE,
message = FALSE,
fig.show = "hold")
```
# Aufgabe
Fragen Sie ChatGPT via API zum Sentiment des ersten Texts aus dem Germeval-2018-Datensatz (Train).
{width=25% fig-align="center"}
Hinweise:
- Beachten Sie die [Standardhinweise des Datenwerks](https://datenwerk.netlify.app/hinweise).
- Nutzen Sie Python, nicht R.
- Das Verwenden der OpenAI-API kostet Geld. 💸 Informieren Sie sich vorab. Um auf die API zugreifen zu können, müssen Sie sich ein Konto angelegt haben und über ein Guthaben verfügen.
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
# Lösung
::: {.callout-attention}
OpenAI hat eine neue API (Stand: 2023-11-23). Der Code der alten API bricht. 💔 $\square$
:::
Module importieren:
```{python}
from openai import OpenAI
```
Anmelden bei OpenAI:
```{python}
client = OpenAI()
```
::: {.callout-note}
Dieses Verfahren setzt voraus, dass in `.Renviron` die Variable `OPENAI_API_KEY` hinterlegt ist. $\square$
:::
Textschnipsel, das zu klassifizieren ist:
```{python}
text = "@corinnamilborn Liebe Corinna, wir würden dich gerne als Moderatorin für uns gewinnen! Wärst du begeisterbar?"
```
Prompt definieren:
```{python}
my_prompt = f"Analysieren Sie das Sentiment des folgenden Texts:\n{text}"
```
Anfrage an die API, in eine Funktion gepackt:
```{python}
def get_completion(prompt, client_instance, model="gpt-3.5-turbo"):
messages = [{"role": "user", "content": prompt}]
response = client_instance.chat.completions.create(
model=model,
messages=messages,
max_tokens=50,
temperature=0,
)
return response.choices[0].message.content
```
Und los:
```{python ask-api}
get_completion(my_prompt, client)
```