HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/PraisonAI/bak.app.by
import os
import time
import logging
import chainlit as cl

# Unterdrücke OpenAI- und Tracing-Logs, indem du das Log-Level auf CRITICAL setzt
logging.getLogger("openai").setLevel(logging.CRITICAL)
logging.getLogger("openai.tracing").setLevel(logging.CRITICAL)

# === ENV SETUP, um zu verhindern, dass das SDK echte Trace-Calls absetzt ===
os.environ["OPENAI_API_KEY"] = "ollama"  # Dummy-Key
os.environ["OPENAI_API_TYPE"] = "openai"
os.environ["OPENAI_SDK_TRACING"] = "false"

# Falls OpenTelemetry geladen ist, deaktiviere den aktuellen Tracing-Kontext
try:
    from openai.tracing import trace_context
    trace_context.set_current(None)
except ImportError:
    pass

# === Lade Umgebungsvariablen ===
from dotenv import load_dotenv
load_dotenv(override=True)

OPENAI_MODEL_NAME = os.getenv("OPENAI_MODEL_NAME")
OPENAI_API_BASE = os.getenv("OPENAI_API_BASE")

print(f"OPENAI_MODEL_NAME: {OPENAI_MODEL_NAME}")
print(f"OPENAI_API_BASE: {OPENAI_API_BASE}")

# === Initialisiere den lokalen OpenAI-Client (Ollama) ===
from openai import AsyncOpenAI
ollama_client = AsyncOpenAI(
    base_url=OPENAI_API_BASE,  # z.B. http://localhost:11434/v1
    api_key="ollama"  # Ollama kümmert sich nicht um den Key
)

print("Using base URL:", ollama_client.base_url)

# === Agent-Setup ===
from agents import Agent, Runner, OpenAIChatCompletionsModel

model = OpenAIChatCompletionsModel(
    model=OPENAI_MODEL_NAME,
    openai_client=ollama_client
)

agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant",
    model=model
)

# --- Chainlit UI Integration ---

@cl.on_chat_start
async def on_chat_start():
    # Initiale Begrüßung beim Start der Unterhaltung
    await cl.Message(content="Hallo! Frag mich etwas, oder gib mir einen Auftrag.").send()

@cl.on_message
async def main(message: str):
    """
    Hier wird jede eingehende Chat-Nachricht verarbeitet.
    Die Nachricht wird an den Agenten weitergereicht, und die Antwort wird zurückgesendet.
    """
    start_time = time.time()
    
    # Verwende die eingehende Nachricht als Prompt
    prompt = message
    result = Runner.run_sync(agent, prompt)

    await cl.Message(content=result.final_output).send()
    
    end_time = time.time()
    runtime = f"Script runtime: {end_time - start_time:.2f} seconds"
    await cl.Message(content=runtime).send()