DEV Community

Cover image for Kaltainen AI agent
timo teppo
timo teppo

Posted on

Kaltainen AI agent

This is a submission for DEV's Summer Bug Smash: Smash Stories powered by Sentry.

Kaltainen AI agent was meant to be like lm studio and was made with lm studio . Lm Studio wrote a terrible translation to finnish language which makes me still laugh . I had to ditch the whole project for now because of the terrible finnish language and i think the code is full of bugs too .
Just a terrible variables and function names and just a terrible chat session with LM Studio .

<|begin▁of▁sentence|><|User|>tee lm studion kaltainen ai agentti ohjelma windowsiin . ohjelma ajaa llm modelleja paikallisesti . ohjelma lataa haluttaessa valitut llm modellit ohjelmaan . tyyli futuristinen . <|Assistant|>

Kaltainen AI -Työpaja

Tässä on futuristiikkalisesti suunniteltu työpaja, joka käyttää Windows-sovellusta kaltaisen LLM-agentin ympäristön luomiseen:

import asyncio
from enum import Enum
import os
from typing import Dict, List, Optional, Set, Tuple, Union

class KaltainenAI(Enum):
    HAVUAIKU = "Havuaikukaltainen"
    AIKAANSKO = "Aikaanskohtuinen"

class AgentTyypit(Enum):
    YRITYSKOKOPISTI = "Yrityskokopisto"
    PROFESSIONAL_AGENT = "ProfessionalAgent"
    KREIVINOMAIKUNTO = "Kreivinomainunkunto"

class LLMIntegraatio:
    def __init__(self):
        self.modelit: Dict[str, Tuple] = {
            # Mallien nimi: (kuvaus, käyttöasetukset)
            'HYBRID_GPT': ('Hybridi-GPT kalkulaattori', {'paikallinen': True, 'kokemusmuutos': 1.0}),
            'NEURAL_KOKOPISTI': ('Neurokone Kokopisto', {'paikallinen': False, 'kokemusmuutos': 2.5}),
            # Lisää tähän halutut muiden LLM-mallien tiedot
        }

    def lataa_modeli(self, modelinimi: str) -> bool:
        """Lataa valittu LLM-modeli kaltaiselle agentille"""
        if modelinimi not in self.modelit:
            print(f"Virhe: Mallia {modelinimi} ei löytynyt regististä")
            return False

        model, asetukset = self.modelit[modelinimi]

        # Simulaatio mallien lataamisesta
        asyncio.sleep(0.5)
        print(f"f[{model}] Ladataan paikallisesti käyttöön...")
        for i in range(3):
            print(f"⏳ Asetuksen {i+1}: {asetukset.get('kokemusmuutos', 'Oletus')}")

        return True

    async def suorita_koneoppiminen(self, modelinimi: str) -> None:
        """Suorittaa koneoppijan oppimis-/koulutuskauden"""
        if not self.lataa_modeli(modelinimi):
            return

        print("🚀 Alustetaan uusi kokemusmuutos...")

        # Simulaatio koulutuksesta
        for vuonna in range(2024, 2030):
            for kuukauden_numero in range(1, 13):
                print(f"{vuonna}-{kuukauden_numero:02d}: Päivittäänn koneoppimisasetuksia...")

        print("✨ Uusi havuaikun kokemus on valmis käyttöön!")

async def main():
    """Päänohjelma kaltainen AI-studiohallintaan"""
    studio = LLMIntegraatio()

    # Kysytään ensin käyttäjältä mallien valinnat
    print("🌌 Tervetuloa Havuaikun Kaltaiselle AI Studioon!")
    modeli_valinta: List[str] = []

    while True:
        vastaus = input("Valitse agentti (tai 'valmis' lopettaaksesi): \n1. HybridGPT\n2. NeuralKokopisto\n3. Valmis (lopeta)\n>")

        if vastaus.lower() == 'valmis':
            break

        try:
            valinta = int(vastaus)
            if valinta == 1 or valinta == 2:
                modeli_valinta.append(['HYBRID_GPT'][valinta-1] if valinta==1 else ['NEURAL_KOKOPISTI'][valinta-1])
                # Tarkistetaan onko mallia vielä lataamatta
                if len(modeli_valinta) == 2:
                    print("🚀 Kaksi agenttia aktivoituu yhdessä!")

        except ValueError:
            print(f"⚠️ Virhe: '{vastaus}' ei ollut kelvollinen valinta")

    # Suoritetaan koneoppijan päivittäys
    await studio.suorita_koneoppiminen(modeli_valinta[0])

if __name__ == "__main__":
    asyncio.run(main())
Enter fullscreen mode Exit fullscreen mode

Tyypilliset toiminnot

Tämä ohjelma voi jatkaa kehitystä seuraavilla toimilla:

  1. Asetusten mukauttaminen:
   class Asetukset(Enum):
       PAIKALLINEN_KAYTTOSUUNTA = 0
       VERKKOMODELI_TYYPITIETOJA = 1
Enter fullscreen mode Exit fullscreen mode
  1. LLM-modulien dynaamista latausta:
   import importlib

   if modelinimi == 'HYBRID_GPT':
       moduuli = importlib.import_module('llm.hybrid_gpt')
       agentti = moduuli.Agent()
Enter fullscreen mode Exit fullscreen mode
  1. Käyttöliittymän parantaminen:
   from rich.console import Console

   console = Console()

   # Esimerkki tulosteesta
   console.print("🚀 Agenttien verkot ovat aktivoituneet", style="cyan")
Enter fullscreen mode Exit fullscreen mode

Täytyisi vielömminkin kehittää interaktiivisempi käyttöliittymä, jolla voidaan hallita useita agentteja ja niiden suorituskykytoteutuksia.<|end▁of▁sentence|><|User|>kehitä interaktiivinen käyttöliittymä<|Assistant|>
Kehitämme interaktiivisen käyttöliittymän Kaltainen AI-studiossa.
Tarkoituksena on luoda futuristisesti näkemytön käyttöliittymä, jolla voidaan hallita LLM-malleja.

Aloitetaan:

  1. Käyttämällä Rich-kirjastoa luoda interaktiivisuutta ja modernia ulkoa.
  2. Luo main menu, josta valikoidaan agenttien tyypit ja toiminnot.

Toteutetaan seuraavat elementit:

  • Futuristinen taustamuotokäyttäys (valonsäteet, kalkulaattorimaiset näkymät)
  • Koneoppijan päivitysten visualisointi "kuuman" diagrammina
  • Agenttien suorituskyvyn testauksen työvuoron

Yksityiskohtia:

  • Käyttäjän valitsema agentti (esimerkiksi 'HYBRID_GPT' tai 'NEURAL_KOKOPISTI')
  • Suorituskyvyn vertailu eri versionaikoilla
  • Mahdollisuus asettaa käyttöliittymän kielen, tyylimuutosten kautta

Toteutetaan aluksi yksinkertainen Rich-käyttöliittymä:

Kaltainen AI Studio - Futuristiikkainen Käyttöliittymä

Tässä kehityn interaktiivinen käyttöliittymä "Kaltainen AI" -työajassa. Ohjelma käyttää Python-ohjelmointia, Rich-kirjastoa grafiikkatyönnän kannalta ja asyncio-modulin agenttien toimintaperiaiseen:

from rich.console import Console
from rich.progress_bar import ProgressBar
from rich.markdown import Markdown
from rich.panel import Panel
from rich.prompt import Prompt
import os
import time

console = Console()
class Agent:
    def __init__(self, nimi: str):
        self.nimi = nimi
        self.tasonalauselu = 0

    async def ajaa_koneoppiminen(self, studio: 'Studio') -> None:
        """Ajaa agentin koneoppijan oppimiskauden"""
        console.print(f"[bold cyan]🚀 Alustetaan {self.nimi}-agentin uutta oppimisjaksoa...", end="", flush=True)

        with ProgressBar(console=console):
            for vuonna in range(2024, 2030):
                taso = min(self.tasonalauselu + (vuonna - 2024) * 0.5 + 1, studio.kokemusparametri)
                self.tasonalauselu = round(taso, 1)

                # Tyhjennä konsoli väliaikaisesti
                if os.name == 'nt': 
                    import sys
                    sys.stdout.write("\x0c")
                    sys.stdout.flush()

                console.print(f"\n[bold green]✨ {self.nimi}-agentti on päättynyt oppimisjaksoon tasolta: [cyan]{self.tasonalauselu}/10", style="bold cyan")

class Studio:
    def __init__(self):
        self.agenteista = []
        self.kokemusparametri = 2.5
        self.models = ['HYBRID_GPT', 'NEURAL_KOKOPISTI', 'CREATIVE_AGENT']

    async def lataa_agentit(self) -> None:
        """Lataaa agentit ja näyttää niiden valinnan"""
        console.clear()
        print(Panel(Markdown("""
        # Kaltainen AI Studio - Futuristiikkainen Työpaja

        [bold cyan]🌌 Havuaikun Kaltaiselle AI Studioon Tervetuloa! 🌌[/bold cyan]

        Valitse agenttityypistä:
        1. HybridGPT Agentti
        2. NeuralKokopisto Agentti
        3. CreativeMind Agentti

        """), title="AI Studio Dashboard", border_style="cyan"))

        while True:
            valinta = Prompt.ask("Agentin tyypin valinta (0-3 tai 'lOPPU' lopettaaksesi)")

            try:
                agentityyppi = self.models[int(valinta)-1]
                uusi_agentti = Agent(agentityyppi)
                self.agenteista.append(uusi_agentni)

                console.print(f"[bold green]✅ {agentityyppi} lisätty agentteihin!", style="bold green")
            except (ValueError, IndexError):
                if valinta.lower() == 'loppu':
                    break
                else:
                    print("[red]❌ Virhe: Syötä luvun 0-3 tai 'loppu'")

    async def suorita_toiminto(self) -> None:
        """Suorittaa agentien toiminnot"""
        for agenti in self.agenteista:
            await asyncio.sleep(1)
            print(f"\n[bold cyan]🤖 {agenti.nimi} on aloittanut työskentelyn...", style="cyan"))

            # Simulaatio agentin tehtävän suorituksesta
            for i in range(5):
                taski = f"{agenti.nimi}: Kehitystehtävä {i+1}"
                print(f"[green]• {taski}")

                if int(agenti.tasonalauselu) >= 3:
                    break

            # Lisää tyhjennys, jos Windows
            if os.name == 'nt': 
                time.sleep(0.5)
                console.clear()

# Pääohjelma
if __name__ == "__main__":
    studio = Studio()

    # Kysytään käyttäjän kokemusparametri
    while True:
        try:
            parametri = float(Prompt.ask("Mikä on havuaikun kokemusparametrin arvo?"))
            studio.kokemusparametri = round(parametri, 1)

            # Lopetetaan käyttöliittymän päätoiminta
            if parametri > 0:
                break

        except ValueError:
            print("[red]❌ Virhe: Syötä kelvollinen luku!")

    # Aloitetaan agenttien ajamisen kiertue
    asyncio.run(studio.lataa_agentit())
Enter fullscreen mode Exit fullscreen mode

Tyypilliset Lisätoiminnot

Tähän ohjelmaan voidisi lisätä vielä seuraavat futuristiikka-alaiset ominaisuudet:

  1. 3D-Visualisoinnit:
   # Käyttämällä matplotlib tai plotlya
   from plotly.graph_objects import Figure

   async def visualisoi_kokemus(self, studio) -> None:
       """Luo 3D-grafiikka havuaikun kokemukselle"""
       fig = Figure()
       # Lisää data ja kuvaajan asetukset
       await fig.show()
Enter fullscreen mode Exit fullscreen mode
  1. Neuraalinen Käyttöliittymä:
   import neural_renderer

   async def pienna_neural_graafi(self) -> None:
       """Pienee neuraltomalla AI-renderöillä"""
       console.print("🧠 Pienee neuraltomalla...", style="bold blue")
       time.sleep(1)
Enter fullscreen mode Exit fullscreen mode
  1. Syvemmät Agentityypit:
   class AdvancedAgent(Agent):
       def __init__(self, nimi: str, tehtavatyyppi: str = "tutkija"):
           super().__init__(nimi)
           self.tehtavatyyppi = tehtavatyyppi

       async def suorita_tehdas(self) -> None:
           """Suorittaa älykkäämpiä agentitoimintoja"""
           print(f"[bold purple]🔮 {self.nimi} käyttää päivänvaloa-tekniikkaa...")
Enter fullscreen mode Exit fullscreen mode

Tämä työpaja voi vielä kehittyä interaktiivisemmaksi, lisäämällä realitioista agentien suorituskyvyn mittaamisen ja visualisoinnin.

Top comments (0)