Warum kann ich OpenAI nicht im Terminal verwenden?

Hallo,

ich programmiere gerade einen Sprachassistenten. Das ist der Code dafür:

import pyttsx3
import re
import pyjokes
import speech_recognition as sr
from pyowm import OWM
import spotipy
from spotipy.oauth2 import SpotifyOAuth
import time
import random
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder
import sounddevice as sd
import pvporcupine
import openai

openai.api_key = 'sk-...'
model_id = "gpt-4"

engine = pyttsx3.init()


def recognize_speech(recognizer, source):
    print("Sage etwas...")
    audio = recognizer.listen(source, timeout=15)
    try:
        text = recognizer.recognize_google(audio, language="de-DE")
        print("Text: " + text)
        return text
    except sr.UnknownValueError:
        return "not_understood"
    except sr.RequestError as e:
        print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
        return ""


def openai_request(prompt):
    response = openai.Completion.create(
        model=model_id,
        messages=[{"role": "user", "content": prompt}],
        max_tokens=150
    )

    api_usage = response['usage']
    print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
    prompt += response.choices[0].message['content']
    return prompt


def speak(text=None):
    if text:
        engine.say(text)
        engine.runAndWait()


def hey_luna_in_q(q):
    return "hey luna" in q.lower()


def wait_for_wake_word(recognizer, source):
    while True:
        print("Warte auf Wake-Word...")
        audio = recognizer.listen(source)
        try:
            text = recognizer.recognize_google(audio, language="de-DE")
            if hey_luna_in_q(text):
                print("Wake-Word erkannt!")
                return
        except sr.UnknownValueError:
            pass
        except sr.RequestError as e:
            print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")


def execute():
    recognizer = sr.Recognizer()

    with sr.Microphone() as source:
        wait_for_wake_word(recognizer, source)

        while True:
            q = recognize_speech(recognizer, source)
            print("Erkannter Text:", q)

            if q == "not_understood":
                speak("Entschuldigung! Das habe ich nicht verstanden.")
                continue

            if "hallo" in q.lower():
                speak("Hallo! Womit kann ich dir behilflich sein?")
                continue

            prompt = q
            response = openai_request(prompt)

            if response.lower().startswith(q.lower()):

                response = response[len(q):].strip()

            speak(response)
            return


if __name__ == '__main__':
    execute()

Wenn ich in PyCharm das Programm ausführe und dann z.B. frage: Wann war der erste Weltkrieg? Dann funktioniert alles perfekt (ich bekomme eine Antwort und es gibt keine Fehler). Wenn ich das Programm nun aber im Terminal ausführe, kommt dieser Fehlercode:

Text: wann war der erste Weltkrieg

Erkannter Text: wann war der erste Weltkrieg

Traceback (most recent call last):

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 106, in <module>

  execute()

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 95, in execute

  response = openai_request(prompt)

        ^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 39, in openai_request

  response = openai.Completion.create(

        ^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai\lib\_old_api.py", line 39, in __call__

  raise APIRemovedInV1(symbol=self._symbol)

openai.lib._old_api.APIRemovedInV1:

You tried to access openai.Completion, but this is no longer supported in openai>=1.0.0 - see the README at https://github.com/openai/openai-python for the API.

You can run `openai migrate` to automatically upgrade your codebase to use the 1.0.0 interface.

Alternatively, you can pin your installation to the old version, e.g. `pip install openai==0.28`

A detailed migration guide is available here: https://github.com/openai/openai-python/discussions/742

C:\Users\User\PycharmProjects\voiceAssistant>

Ich weiss wirklich nicht, wie ich diesen Fehler beheben kann. Bitte helft mir.

Freundliche Grüsse

Code, künstliche Intelligenz, Programmiersprache, Python, Terminal, Python 3, Pycharm, ChatGPT
Warum wird das Wake Word nicht erkannt?

Hallo,

ich programmiere momentan einen Sprachassistenten und bin gerade am Wake Word dran. Mein Code sieht so aus:

import pyttsx3
import re
import pyjokes
import speech_recognition as sr
from pyowm import OWM
import spotipy
from spotipy.oauth2 import SpotifyOAuth
import time
import random
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder
import sounddevice as sd
import pvporcupine
import openai

openai.api_key = 'sk-...'
model_id = "gpt-4"

engine = pyttsx3.init()


def recognize_speech(recognizer, source):
    print("Sage etwas...")
    audio = recognizer.listen(source, timeout=15)
    try:
        text = recognizer.recognize_google(audio, language="de-DE")
        print("Text: " + text)
        return text
    except sr.UnknownValueError:
        return "not_understood"
    except sr.RequestError as e:
        print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
        return ""


def picovoice_listen():
    keyword_file_path = "C:\\Hey-Luna_de_windows_v3_0_0\\Hallo-Luna_de_windows_v3_0_0.ppn"
    sensitivities = [0.7]

    try:
        porcupine = pvporcupine.create(
            access_key='...',
            keyword_paths=['C:\\Hey-Luna_de_windows_v3_0_0\\Hallo-Luna_de_windows_v3_0_0.ppn'],
            model_path='C:\\Hey-Luna_de_windows_v3_0_0\\porcupine_params_de.pv'
        )

        sample_rate = porcupine.sample_rate
        print("Sample Rate:", sample_rate)

        pcm = record_audio(sample_rate=sample_rate, duration=3)
        keyword_index = porcupine.process(pcm)

        if keyword_index >= 0:
            print("Wake word detected!")
            porcupine.delete()
            return True
        else:
            print("Wake word not detected!")

    except pvporcupine.PorcupineError as e:
        print(f"Porcupine error: {e}")

    return False


def record_audio(sample_rate, duration):
    print("Aufnahme gestartet...")
    audio = sd.rec(int(sample_rate * duration), samplerate=sample_rate, channels=1, dtype='int16')
    sd.wait()
    print("Aufnahme beendet.")
    return audio.flatten()[:512]


def openai_request(prompt):
    response = openai.ChatCompletion.create(
        model=model_id,
        messages=prompt
    )

    api_usage = response['usage']
    print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
    prompt.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content})
    return prompt


def speak(text):
    engine.say(text)
    engine.runAndWait()


def ausführen():
    recognizer = sr.Recognizer()

    while True:
        if picovoice_listen():
            with sr.Microphone() as source:
                q = recognize_speech(recognizer, source)
                print("Erkannter Text:", q)

                if q == "not_understood":
                    speak("Entschuldigung! Das habe ich nicht verstanden.")
                    continue

                elif "hallo" in q:
                    speak('Hallo! Womit kann ich dir behilflich sein?')
                    continue

                else:
                    prompt = [{'role': 'user', 'content': q}]
                    prompt = openai_request(prompt)
                    response = prompt[-1]['content']
                    speak(response)
                    return  # Programm beenden, nachdem die Antwort gesprochen wurde


if __name__ == '__main__':
    ausführen()

wenn ich nun aber das Programm ausführe und das Wake Word ("Hallo Luna") sage, kommt immer "Wake word not detected!" und dann wiederholt sich das ganze, egal wie oft ich das Wake word sage. Woran liegt das?

Freundliche Grüsse

Code, künstliche Intelligenz, Programmiersprache, Python, Python 3, Pycharm
Warum Funktioniert mein Wake Word nicht?

Hallo,

ich programmiere gerade einen Sprachassistenten und bin gerade am Wake Word dran. Mein Code sieht so aus:

import openai
import pyttsx3
import re
import pyjokes
import speech_recognition as sr
from pyowm import OWM
import spotipy
from spotipy.oauth2 import SpotifyOAuth
import time
import random
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder
import sounddevice as sd
import pvporcupine

openai.api_key = 'sk-...'
model_id = "gpt-4"

engine = pyttsx3.init()

WAKE_WORD_MODEL_FILE_PATH = "C:\\Hey-Luna_de_windows_v3_0_0\\Hey-Luna_de_windows_v3_0_0.ppn"


def recognize_speech():
    recognizer = sr.Recognizer()

    while True:
        with sr.Microphone() as source:
            print("Sage etwas...")
            audio = recognizer.listen(source, timeout=15)

        try:
            text = recognizer.recognize_google(audio, language="de-DE")
            print("Text: " + text)
            return text
        except sr.UnknownValueError:
            return "not_understood"
        except sr.RequestError as e:
            print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
            return ""


def record_audio(sample_rate, duration):
    print("Aufnahme gestartet...")
    audio = sd.rec(int(sample_rate * duration), samplerate=sample_rate, channels=1, dtype='int16')
    sd.wait()
    print("Aufnahme beendet.")
    return audio.flatten()


def picovoice_listen():
    keyword_file_path = "C:\\Hey-Luna_de_windows_v3_0_0\\Hey-Luna_de_windows_v3_0_0.ppn"
    sensitivities = [0.5]  # Adjust as needed

    try:
        handle = pvporcupine.create(
            keyword_paths=[keyword_file_path],
            sensitivities=sensitivities,
            access_key='...'
        )

        sample_rate = handle.sample_rate

        while True:
            pcm = record_audio(sample_rate=sample_rate, duration=15)
            keyword_index = handle.process(pcm)

            if keyword_index >= 0:
                print("Wake word detected!")
                break

    except pvporcupine.PorcupineError as e:
        print(f"Porcupine error: {e}")

    finally:
        if 'handle' in locals():
            handle.delete()


def openai_request(prompt):
    response = openai.ChatCompletion.create(
        model=model_id,
        messages=prompt
    )

    api_usage = response['usage']
    print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
    prompt.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content})
    return prompt


def speak(text):
    engine.say(text)
    engine.runAndWait()


def ausführen():
    while True:
        picovoice_listen()

        q = recognize_speech()
        print("Erkannter Text:", q)

        if q == "not_understood":
            speak("Entschuldigung! Das habe ich nicht verstanden.")
            break

        elif not q:
            break

        elif "hallo" in q:
            speak('Hallo! Womit kann ich dir behilflich sein?')
            continue

        else:
            prompt = [{'role': 'user', 'content': q}]
            prompt = openai_request(prompt)
            response = prompt[-1]['content']
            speak(response)
            break


if __name__ == '__main__':
    ausführen()

wenn ich nun aber das Programm ausführe, kommt diese Meldung und ich muss das Wake Word nicht sagen, um meine Frage zu stellen, welche dann von z.B. OpenAI beantwortet wird:

C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Scripts\python.exe C:\Users\User\PycharmProjects\voiceAssistant\main.py 

Porcupine error: Initialization failed:

 [0] Keyword file (.ppn) and model file (.pv) should belong to the same language. File belongs to `de` while model file (.pv) belongs to `en`.

Sage etwas...

woran liegt das?

Freundliche Grüsse

Code, künstliche Intelligenz, Programmiersprache, Python, Python 3, Pycharm, ChatGPT
Ist die Menschheit reif für fortgeschrittene KI?

Ich spreche jetzt ausdrücklich nicht von heutigen KIs wie ChatGPT oder Google Bard, die noch in den Kinderschuhen stecken, sondern von viel höher entwickelten Systemen, die es in naher Zukunft geben könnte.

Die Geschichte zeigt, dass die Menschheit dazu neigt, Phänomene, die sie nicht vollständig versteht oder die eine gewisse Faszination ausüben, zu mystifizieren oder gar zu vergöttern. Die rapide Entwicklung der KI-Technologie, gepaart mit ihrer wachsenden Fähigkeit, Aufgaben zu übernehmen, die früher als ausschließlich menschliche Domäne galten, könnte meiner Meinung nach zu einer Art von Verehrung führen, besonders wenn diese Systeme beginnen, komplexe Probleme zu lösen oder Verhaltensweisen zu zeigen, die als "intelligent" oder "kreativ" interpretiert werden könnten.

Was wäre, wenn verschiedene Gesellschaften unterschiedliche, vielleicht sogar konkurrierende KI-Systeme entwickeln und verehren? In Anbetracht der menschlichen Natur wirft das doch die Möglichkeit auf, dass es dadurch zu Konflikten kommen könnte, die Ähnlichkeiten mit Religionskriegen oder ideologischen Auseinandersetzungen haben könnten. Solche Szenarien könnten entstehen, wenn Gruppen von Menschen ihre jeweiligen KI-Systeme nicht nur als überlegen ansehen, sondern auch als Ausdruck ihrer kulturellen oder moralischen Werte, die es gegenüber anderen zu verteidigen gilt.

Was meint ihr?

Religion, Krieg, Konflikt, künstliche Intelligenz, Menschheit
Warum macht GPT Fehler bei simpelsten Rechenaufgaben?

Also gestern war ich tatsächlich etwas verwirrt wegen Gpt.

Jegliche Art von Übersetzungsfehler oder sprachliche Missverständnisse im Austausch mit einer Chat-Bot-KI machen mir wirklich rein gar nichts aus. Aber wenn ein Computer wohl irgendetwas perfekt und deswegen auch 100% fehlerfrei können sollte, ist es wohl simpelste Rechenoperationen durchzuführen.

Streng genommen macht ein Computer sobald er läuft ja nichts anderes als «rechnen», darum nennt man ihn wohl auch Rechner. Oder? Jetzt schaut euch das Bild meiner Unterhaltung an.

Ich kriegte mich fast nicht mehr ein vor lauter Lachen. Ach ja, als ich gpt auf den Rechenfehler hingewiesen hatte berechnete er meine «Aufgabe» sogleich neu und hat sich tatsächlich gleich nochmals verrechnet. Kann mir das irgendjemand erklären? Die Aufgabe war klar und unmissverständlich (meiner Meinung nach) formuliert und die simplen Multiplikationen und Additionen mit ganzen Zahlen im tausender Bereich beherrschen sogar meine Schüler in der 5. Klasse problemlos. Gpt selbst konnte mir keine schlüssige Antwort darauf geben wie das möglich sein kann. Na ja, evtl. hatte «er» einfach einen schlechten Tag oder guckt sich mittlerweile etwas zu viel von unseren menschlichen Verhaltensweisen ab.

Made my day…

Ich kann immer noch nicht aufhören zu grinsen.

Falls jemand eine Idee hat was da falsch gelaufen sein könnte, dann wäre ich sehr interessiert davon zu erfahren.

Vielen Dank…

Ps. Bitte vergebt mir jegliche Rechtschreibfehler in meinem Beitrag ;-)

Bild zu Frage
künstliche Intelligenz, ChatGPT

Meistgelesene Fragen zum Thema Künstliche Intelligenz