Benutzer-Werkzeuge

Webseiten-Werkzeuge


openai

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
openai [2025/07/18 20:57]
jango
openai [2025/08/02 19:49] (aktuell)
jango
Zeile 1: Zeile 1:
-Chat Completion+=====API===== 
 + 
 +[[https://platform.openai.com/docs/overview|OpenAI API Documentation]] 
 + 
 +====Local==== 
 +<code python> 
 +import requests 
 +import json 
 +import pyttsx3 
 + 
 +# gemma-3-1b-it, qwen3-14b, openai-7b-v0.1 
 +MODEL_NAME = "openai-7b-v0.1" 
 +API_URL = "http://127.0.0.1:8080" 
 + 
 +def frage_gpt(prompt_text): 
 +    try: 
 +        response = requests.post( 
 +            API_URL + "/v1/chat/completions", 
 +            headers={"Content-Type": "application/json"}, 
 +            data=json.dumps({ 
 +                "model": MODEL_NAME, 
 +                "messages":
 +                    {"role": "system", "content": "Du bist ein hilfreicher Assistent."}, 
 +                    {"role": "user", "content": prompt_text} 
 +                ], 
 +                "stream": False 
 +            }) 
 +        ) 
 +        if response.status_code == 200: 
 +            return response.json() # response.text 
 +        else: 
 +            return f"Fehler: {response.status_code} - {response.text}" 
 +    except Exception as e: 
 +        return f"Fehler: {e}" 
 +         
 +def frage_gpt_stream(prompt_text): 
 +    try: 
 +        response = requests.post( 
 +            API_URL + "/v1/chat/completions", 
 +            headers={"Content-Type": "application/json"}, 
 +            data=json.dumps({ 
 +                "model": MODEL_NAME, 
 +                "messages":
 +                    {"role": "assistant", "content": "Du bist ein hilfreicher Assistent."}, 
 +                    {"role": "user", "content": prompt_text} 
 +                ], 
 +                "stream": True 
 +            }), 
 +            stream=True  # aktiviert Streaming 
 +        ) 
 + 
 +        if response.status_code != 200: 
 +            print(f"Fehler: {response.status_code} - {response.text}"
 +            return 
 +         
 +        # Antwort-Stream verarbeiten 
 +        for line in response.iter_lines(): 
 +            if line: 
 +                decoded_line = line.decode("utf-8"
 +                if decoded_line.startswith("data: "): 
 +                    payload = json.loads(decoded_line[6:]) 
 +                    delta = payload.get("choices", [{}])[0].get("delta", {}).get("content"
 +                    if delta: 
 +                        print(delta, end="", flush=True) 
 + 
 +    except Exception as e: 
 +        print("") #print(f"Fehler: {e}"
 + 
 + 
 +engine = pyttsx3.init() 
 +engine.setProperty("rate", 150) 
 +engine.setProperty("volume", 1.0) 
 +voices = engine.getProperty("voices"
 +for voice in voices: 
 +    if "german" in voice.name.lower(): 
 +        engine.setProperty("voice", voice.id) 
 +        break 
 + 
 + 
 +while True: 
 +    frage = input("Frage: ") 
 +    frage_gpt_stream(frage) 
 +    #print(antwort["choices"][0]["message"]["content"]) 
 +    #engine.say(antwort["choices"][0]["message"]["content"]) 
 +    #engine.runAndWait() 
 +</code> 
 + 
 +====Chat Completion====
  
 <code python> <code python>
Zeile 30: Zeile 117:
 </code> </code>
  
-Function Calling+====Chat Completion mit Verlauf==== 
 + 
 +<code python> 
 +import openai 
 +import os 
 + 
 +openai.api_key = os.getenv("OPENAI_API_KEY") or "sk-xxxxx" 
 + 
 +chat_history = [ 
 +    {"role": "system", "content": "Du bist ein hilfreicher Assistent."
 +
 + 
 +def frage_gpt_mit_verlauf(chat_history): 
 +    try: 
 +        response = openai.ChatCompletion.create( 
 +            model="gpt-4", 
 +            messages=chat_history, 
 +            temperature=0.7, 
 +            max_tokens=500 
 +        ) 
 +        antwort = response['choices'][0]['message']['content'
 +        return antwort.strip() 
 +    except Exception as e: 
 +        return f"Fehler: {e}" 
 + 
 +def frage_gpt_stream_mit_verlauf(chat_history): 
 +    try: 
 +        response = openai.ChatCompletion.create( 
 +            model="gpt-4", 
 +            messages=chat_history, 
 +            temperature=0.7, 
 +            max_tokens=500, 
 +            stream=True 
 +        ) 
 + 
 +        full_answer = "" 
 +        for chunk in response: 
 +            if 'choices' in chunk and len(chunk['choices']) > 0: 
 +                delta = chunk['choices'][0]['delta'
 +                content = delta.get("content", ""
 +                print(content, end="", flush=True) 
 +                full_answer += content 
 +        print() 
 +        return full_answer.strip() 
 + 
 +    except Exception as e: 
 +        return f"Fehler: {e}" 
 + 
 +def main(): 
 +    while True: 
 +        frage = input("Frage: ").strip() 
 +        if frage.lower() in ['exit', 'quit']: 
 +            print("Chat beendet."
 +            break 
 + 
 +        chat_history.append({"role": "user", "content": frage}) 
 + 
 +        antwort = frage_gpt_stream_mit_verlauf(chat_history) 
 +        #antwort = frage_gpt_mit_verlauf(chat_history)  # falls du lieber ohne Streaming willst 
 + 
 +        chat_history.append({"role": "assistant", "content": antwort}) 
 + 
 +if __name__ == "__main__": 
 +    main() 
 +</code> 
 + 
 + 
 +====Function Calling====
  
 <code python> <code python>
openai.1752865047.txt.gz · Zuletzt geändert: 2025/07/18 20:57 von jango