Opprett praterobot på ndla - itnett/FTD02H-N GitHub Wiki

prateroboter

Det høres spennende ut å lage en egendefinert praterobot! For å hjelpe deg med å opprette en praterobot som kan integreres med NDLA (Nasjonal Digital Læringsarena), kan vi starte med å definere hva slags funksjonalitet og informasjon den skal tilby. Her er en enkel guide for hvordan du kan gå frem:

Trinn 1: Definer formålet med prateroboten

Hva er hovedformålet med prateroboten? Her er noen eksempler:

  • Svare på fagrelaterte spørsmål fra elever.
  • Hjelpe lærere med undervisningsmateriale.
  • Gi tips og ressurser fra NDLA.

Trinn 2: Bestem innhold og funksjonalitet

Hva slags spørsmål og svar skal prateroboten håndtere? Her er noen forslag:

  • Spørsmål om spesifikke fag (f.eks. norsk, matematikk, historie).
  • Informasjon om eksamensforberedelser.
  • Hjelp med å finne artikler og videoer på NDLA.
  • Generell veiledning i studieteknikk.

Trinn 3: Lag et grunnleggende oppsett

Her er et eksempel på hvordan du kan strukturere oppsettet for prateroboten.

Introduksjonstekst:

Hei! Jeg er NDLA-prateroboten. Hvordan kan jeg hjelpe deg i dag?

Dersom roboten stopper midt i en setning eller ikke svarer, kan du bare be den om å fortsette eller prøve på nytt.

Retningslinjer:
- Ikke del personlig informasjon.
- Vær kritisk til svarene du får fra tjenesten.
- Språkmodellen produserer tekst ut fra mønstergjenkjenning og sannsynlighetsberegning. Den gjør ingen vurderinger knyttet til rett eller galt, sant eller usant.

Kildehenvisning:
Azure OpenAI. (2023). NDLA praterobot: Egendefinert praterobot (9. oktober versjon) [Stor språkmodell GPT-3.5 Turbo]. NDLA. https://ndla.no/minndla

Trinn 4: Implementer prateroboten

For å implementere prateroboten kan du bruke plattformer som Azure Bot Service, Google Dialogflow, eller Rasa. Her er en enkel pseudokode som illustrerer hvordan du kan lage en praterobot ved hjelp av Python og NDLA API:

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    user_message = data['message']
    response = handle_message(user_message)
    return jsonify({"reply": response})

def handle_message(message):
    # Logikk for å håndtere melding og søke i NDLA
    if "matematikk" in message.lower():
        return search_ndla("matematikk")
    elif "norsk" in message.lower():
        return search_ndla("norsk")
    else:
        return "Beklager, jeg forstod ikke spørsmålet ditt. Kan du prøve igjen?"

def search_ndla(query):
    ndla_api_url = f"https://api.ndla.no/search?q={query}"
    response = requests.get(ndla_api_url)
    if response.status_code == 200:
        results = response.json()
        # Eksempel på å returnere de første resultatene
        return results[0]['title'] + ": " + results[0]['url']
    else:
        return "Beklager, jeg klarte ikke å finne informasjon om dette på NDLA."

if __name__ == '__main__':
    app.run(port=5000)

Trinn 5: Test og tilpass

  • Test prateroboten med forskjellige spørsmål for å sikre at den svarer korrekt.
  • Tilpass svarene og logikken etter behov.

Ved å følge disse trinnene kan du lage en egendefinert praterobot som hjelper både elever og lærere med informasjon fra NDLA. Hvis du trenger hjelp med spesifikke deler av prosessen, er det bare å si ifra!

Takk for informasjonen! La oss oppsummere hvordan du kan opprette en egendefinert praterobot basert på NDLA sin tjeneste. Her er en trinnvis guide som tar hensyn til tekniske detaljer og sikkerhetsaspekter:

Trinn 1: Definer formål og målgruppe

Bestem om du vil lage en praterobot for elever eller lærere. Dette påvirker ledeteksten som settes for modellen.

Trinn 2: Ledetekst

Bruk følgende ledetekst avhengig av formålet:

  • For elever: “Skriv som om du er en elevhjelper for elever i videregående skole. Vær pedagogisk og motiverende.”
  • For lærere: “Skriv som om du er en lærerhjelper for lærere på videregående skole. Vær didaktisk, hjelpsom og kreativ.”

Trinn 3: Teknisk oppsett

  1. Opprett en Azure OpenAI Service:

    • Registrer deg hos Microsoft Azure og opprett en OpenAI service.
    • Få API-nøkkelen og endpoint-URL.
  2. Implementer prateroboten:

    • Bruk et web-rammeverk som Flask (Python) for å lage en enkel server.
    • Sett opp en webhook for å motta og svare på meldinger.

Her er et eksempel på hvordan du kan sette opp serveren i Python med Flask:

from flask import Flask, request, jsonify
import openai

app = Flask(__name__)

# Sett din OpenAI API-nøkkel her
openai.api_key = 'din-api-nøkkel'

# Ledetekst basert på målgruppen
lead_in_text = "Skriv som om du er en lærerhjelper for lærere på videregående skole. Vær didaktisk, hjelpsom og kreativ."

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    user_message = data.get('message', '')
    response = get_openai_response(user_message)
    return jsonify({"reply": response})

def get_openai_response(message):
    # Send forespørsel til OpenAI API
    response = openai.Completion.create(
        engine="gpt-3.5-turbo",
        prompt=lead_in_text + "\n\n" + message,
        max_tokens=150,
        temperature=0.5
    )
    return response.choices[0].text.strip()

if __name__ == '__main__':
    app.run(port=5000)

Trinn 4: Testing og justering

  • Test prateroboten: Bruk ulike scenarier for å sikre at roboten svarer korrekt.
  • Justér temperaturen: Hvis svarene er for uforutsigbare eller for monotone, kan du justere temperaturen (f.eks. fra 0,5 til 0,6 eller 0,4).

Trinn 5: Implementering på nettsiden

  • Integrer prateroboten på NDLA sin nettside ved å bruke en iframe eller en JavaScript-basert løsning for å kommunisere med Flask-serveren.
  • Sikkerhet: Sørg for at all kommunikasjon skjer over HTTPS for å beskytte brukernes data.

Trinn 6: Vedlikehold og oppdatering

  • Overvåk og vedlikehold prateroboten for å sikre at den fungerer som forventet.
  • Oppdater ledetekst og innstillinger basert på tilbakemeldinger fra brukerne.

Eksempel på ledetekst og koding

Ledetekst:

Skriv som om du er en lærerhjelper for lærere på videregående skole. Vær didaktisk, hjelpsom og kreativ.

Eksempel på serverinnstilling med Flask:

from flask import Flask, request, jsonify
import openai

app = Flask(__name__)

openai.api_key = 'din-api-nøkkel'

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    user_message = data.get('message', '')
    response = get_openai_response(user_message)
    return jsonify({"reply": response})

def get_openai_response(message):
    lead_in_text = "Skriv som om du er en lærerhjelper for lærere på videregående skole. Vær didaktisk, hjelpsom og kreativ."
    response = openai.Completion.create(
        engine="gpt-3.5-turbo",
        prompt=lead_in_text + "\n\n" + message,
        max_tokens=150,
        temperature=0.5
    )
    return response.choices[0].text.strip()

if __name__ == '__main__':
    app.run(port=5000)

Med denne veiledningen kan du sette opp en egendefinert praterobot som passer til NDLA sitt formål, enten for elever eller lærere. Hvis du trenger videre assistanse, er det bare å si ifra!

Opprett Praterobot basert på GitHub-innhold

For å lage en egendefinert GPT-assistent for IT-drift og sikkerhet ved Fagskolen Innlandet, kan vi følge disse trinnene:

  1. NAVN:

    • "IT-Drift og Sikkerhet Assistent"
  2. SYSTEMLEDETEKST:

    • "Du er en ekspert i IT-drift og sikkerhet. Gi råd om IT-infrastruktur, nettverk, cybersikkerhet, og serverdrift. Tilby løsninger for feilsøking og gi kursmateriell og veiledning for IT-sertifiseringer som CCNA og ITIL."
  3. INNLEDENDE SPØRSMÅL:

    • "Hei! Hva kan jeg hjelpe deg med i dag? Trenger du hjelp med IT-infrastruktur, nettverk, sikkerhet eller noe annet?"
  4. TEMPERATUR:

    • 0.5

Eksempel på Implementering i Python med Flask

Backend (Flask API):

from flask import Flask, request, jsonify
import openai

app = Flask(__name__)

openai.api_key = 'din-api-nokkel'

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    user_message = data.get('message', '')
    response = get_openai_response(user_message)
    return jsonify({"reply": response})

def get_openai_response(message):
    system_prompt = ("Du er en ekspert i IT-drift og sikkerhet. Gi råd om IT-infrastruktur, "
                     "nettverk, cybersikkerhet, og serverdrift. Tilby løsninger for feilsøking og gi kursmateriell "
                     "og veiledning for IT-sertifiseringer som CCNA og ITIL.")
    prompt = f"{system_prompt}\n\nBrukermelding: {message}"
    response = openai.Completion.create(
        engine="gpt-3.5-turbo",
        prompt=prompt,
        max_tokens=150,
        temperature=0.5
    )
    return response.choices[0].text.strip()

if __name__ == '__main__':
    app.run(port=5000)

Frontend (HTML):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>IT-Drift og Sikkerhet Assistent</title>
    <script>
        async function sendSporsmal() {
            const sporsmal = document.getElementById("sporsmal").value;
            const response = await fetch('/webhook', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({ message: sporsmal })
            });
            const data = await response.json();
            document.getElementById("svar").innerText = data.reply;
        }
    </script>
</head>
<body>
    <h1>IT-Drift og Sikkerhet Assistent</h1>
    <input type="text" id="sporsmal" placeholder="Skriv ditt spørsmål her">
    <button onclick="sendSporsmal()">Send</button>
    <p id="svar"></p>
</body>
</html>

Dette gir en robust start for en GPT-assistent som kan gi relevant støtte innen IT-drift og sikkerhet. Juster ledeteksten og funksjonene etter behov for å bedre møte brukernes behov.

Navn: IT-Drift og Sikkerhet Assistent Systemledetekst: Du er en ekspert i IT-drift og sikkerhet. Gi råd om IT-infrastruktur, nettverk, cybersikkerhet, og serverdrift. Tilby løsninger for feilsøking og gi kursmateriell og veiledning for IT-sertifiseringer som CCNA og ITIL Innledende spørsmål: Hei! Hva kan jeg hjelpe deg med i dag? Trenger du hjelp med IT-infrastruktur, nettverk, sikkerhet eller noe annet? Temperatur: 0.5

⚠️ **GitHub.com Fallback** ⚠️