Want to create interactive content? It’s easy in Genially!

Get started free

Chatbots de la Lògica a la IA.

Maria Queralt Bausa Albert

Created on February 3, 2026

Start designing with a free template

Discover more than 1500 professional designs like these:

Explainer Video: Keys to Effective Communication

Explainer Video: AI for Companies

Corporate CV

Flow Presentation

Discover Your AI Assistant

Urban Illustrated Presentation

Geographical Challenge: Drag to the map

Transcript

Chatbots de la Lògica a la IA.

Curs de Programació i Introducció a Phyton

def xatbot_inici(): nom = input('Com et dius?') print(f'Hola {nom}, sóc el teu assistent.')

Hola! Com et puc ajudar?

Projecte Final: El Teu Propi Chatbot

L'Objectiu: Crear un Chatbot funcional i 'intel·ligent'que resolgui una necessitat concreta.

Mòduls

  1. Diagnóstic
  2. Anatomia del chatbot
  3. Pensament computacional
  4. Python básic aplicat
  5. Patrons + Disseny del chatbot
  6. Construcció
  7. Testeij
  8. IA + Reflexió
Curs de Programació i Introducció a Phyton

1. Conceptes clau. Anatomia del Chatbot

L'algorisme
Hardware (Maquinari)

Sèrie de passos a seguir per a realitzar una determinada tasca tècnica.

Software (Instruccions)
Ordinador

Un algorisme ha de complir unes certes característiques essencials:1. Claredat i precisió 2. Definició d'entrades 3. Generació de sortides 4. Finitud 5. Correcció 6. Gestió de precondicions

El funcionament d'un ordinador es basa en l'execució d'instruccions organitzades en seqüències anomenades programes informàtics.

Curs de Programació i Introducció a Phyton

Diagrames de flux. Representació gràfica mitjançant símbols d'un algorisme

Regles d'Or

  • Un únic inici i final.
  • Flux de dalt a baix i d'esquerra a dreta.
  • Evitar creuament de línies.

P01_Radiografía de un chatbot real

Tria un dels següents chatbots i interectua amb ell.
  • Anota entrades possibles.
  • Analitza respostes.
  • Detecta els coneixements del chatbot.
Gol airlines
Travel Club
DKV
Correos

2. Pensament Computacional.

Les seqüències
Les condicions (IF / ELSE)
Els bucles (LOOPS)

Una seqüència és l’ordre de les instruccions. Els ordinadors NO entenen “fes això més tard” o “ja ho intueixes”. Necessiten: 1 → 2 → 3 → 4 → … Si canviem l’ordre, el resultat canvia completament.

Les màquines prenen decisions mitjançant condicions. IF (si) passa A → fes B ELSE (si no) → fes C Això serveix per: donar respostes diferents segons l’input, gestionar errors, crear camins alternatius dins d’un xatbot.

Un bucle permet repetir una acció fins que passi una condició. El farem servir per: mantenir la conversa oberta, repetir preguntes, sortir del xatbot quan l’usuari digui “sortir”.

Exemple

Mentre l’usuari no digui “adeu” Preguntar alguna cosa Respondre Fi del bucle

1. Preguntar el nom 2. Guardar el nom 3. Saludar l’usuari pel seu nom Si l’ordre fos 2 → 3 → 1… 🔧 El programa fallaria perquè intenta guardar o utilitzar un nom que encara no existeix.

Si l’usuari escriu “ajuda” → mostrar missatge d’ajuda.Si no → continuar la conversa normal

Curs de Programació i Introducció a Phyton

P02_Construïm el cervell

DISSENY INICIAL

  1. Nom del chatbot
  2. Tema / necessitat
  3. Públic objectiu
  4. Objectiu principal (1 línia)
  5. Ton del missatge (friendly / formal / humor)
  6. 5 preguntes que ha de saber respondre (amb respostes previas)

Tenint en compte el primer exercici i aquest esborrany...

Hauràs de transformar el teu diagrama en un text estructurat que descrigui:

  • què fa el xatbot des que comença fins que acaba,
  • quines preguntes farà,
  • quines condicions utilitza per decidir la resposta,
  • quan acaba la conversa,
  • com gestiona inputs incorrectes,
  • quins passos es repeteixen.

3. Python bàsic. El llenguatge del curs

Existeixen centenars de llenguatges de programació, diferenciats en categories:Codi màquina / Baix nivell.

Llenguatge d'alt nivell.

def xatbot_inici(): nom = input('Com et dius?') print(f'Hola {nom}, sóc el teu assistent.')

L'Entorn de Treball (IDE)

Més proper al llenguatge humà

Curs de Programació i Introducció a Phyton

Emmagatzematge de Dades: Variables i Tipus.

Variable
Operadors Aritmètics
Operadors Comperatius

Un contenidor amb nom que guarda un valor a la memòria. Assignació (=): "x = 12" és una ordre, no una pregunta.

+ Suma- Resta * Multiplicació / Divisió // Divisió Entera ** Potència % Mòdul (Residu)

Igual que == Diferent != Més gran que > Menor que < Major o igual >= Menor o igual <=

  • Numèrics
    • Sencers: int → ordinador = 20
    • Decimal: float → preu = 19.99
  • Textos: string, qualsevol informació tancada entre cometes. → nom = 'Queralt'
  • Booleans: Només pot prendre dos valors True i False.

Activitat:

Exemple
  • Fes un programa que calculi la mitjana aritmètica de tres dades.
  • Fes un programa que calculi el volum d'un cilindre.

ample = 20 llarg = 5 * 9 print (ample * llarg)

Comunicació amb l'Usuari: Input i Print

Cadenes de caràcters: qualsevol informació que Python interpreti com a text, els element contingut entre cometes simples (‘…’) o cometes dobles (“…”). Es diuen variables tipo string.

Sortida (print)
Entrada (input)

Activitat aprenent:

print ('Hola')

nom = input('Com et dius? ')

Escriu un programa que demani el nom, el cognom i l’edat, i mostri una frase del tipus: "Em dic <nom> <cognom> i tinc <edat> anys."

Hola

print (''Hola\nadeu'')

Com et dius?

Hola adeu

print ('Hola\tadeu')

Activitat avançada:

Hola adeu

Escriu un programa que demani el preu d’un producte i un percentatge de descompte, i mostri el preu final

f-string: Incorpora variables dins de cadenes.

nom = Queralt print (f'Hola {nom}')

Manipulació de cadenes de text (strings)

Exemples
Índex en cadenes de text

print (z[0])

Cada caràcter d'una cadena de text queda referenciat per mitjà d'un índex. associat a la seva posició en la cadena.Es reclama la posició utilitzant cortxets [] IMPORTANT: primera posició és 0

print (z[0:5])

ROBÒT

print (len(z))

-1

-2

-3

-4

-5

-6

-7

-8

Recordem:

Fes un programa en Python que ajudi una persona a calcular el seu pressupost mensual. El programa ha de:

  1. Demanar el nom de l’usuari.
  2. Demanar el seu salari mensual net.
  3. Demanar la quantitat de diners que gasta cada mes en:
    1. Lloguer
    2. Menjar
    3. Transport
  4. Calcular els següents valors:
    1. Total de despeses
    2. Diners restants a final de mes
    3. Percentatge del salari que representen les despeses
  5. Mostrar un missatge que expliqui tot.

Exemples

Llistes

formes.append('pentàgon')

Col·lecció ordenada de dades. Cadascun de les dades individuals queda definit dins de la llista per un índex.Els elements queden agrupats entre cortxets [].

formes

triangle

quadrat

cercle

pentàgon

formes = ['quadrat', 'cercle', 'triangle']

formes.pop(0)

dades_p = ['Joan','Puig', 6, 'juny',1988] Nom = dades_p[0] Cognom = dades_p[1] Aniversari = dades_p[2:5] print(Nom, Cognom,Aniversari)

formes

triangle

quadrat

cercle

pentàgon

Joan Puig [6, juny, 11988]

'cercle' in formes

True

Prenent decisions: condicionals (if/else)

Comparadors lògics

==, !=, <, >, =<, = >

L'ordre if avalua una condició. Si la condició es compleix s'executen les ordenis agrupades dins del bloc if. Si no es compleix no s'executaran les ordens agrupades en el bloc if.

Operadors lògics

and, or, not

a= int(input('Introueix un nombre: ')) b= int(input('Introueix un nombre: ')) if a < b: print(a, 'és més petit que', b) elif a > b: print(a, 'és més gran que', b) else: print(a, 'és igual que', b)

Activitats

Escriure un programa que emmagatzemi la cadena de caràcters contrasenya en una variable, pregunti a l'usuari per la contrasenya i imprimeixi per pantalla si la contrasenya introduïda per l'usuari coincideix amb la guardada en la variable sense tenir en compte majúscules i minúscules. a.lower()

Comparadors lògics

==, !=, <, >, =<, = >

Repeticions: bucles (for)

Com podem executar la mateixa instrucció per a cada element sense repetir codi?

Operadors lògics

Estructura de control que repeteix un bloc d'instruccions. Iteració: cadascuna de les vegades que s’executa el cos del bucle.

and, or, not

assignatures = ['Mates', 'Física', ' Robòtica'] for elements in assignatures: print(f'la meva classe preferida és {elements})

assignatures = ['Mates', 'Física', ' Robòtica'] print(assignatures[0]) print(assignatures[1]) print(assignatures[2])

La meva classe preferida és MatesLa meva classe preferida és Física La meva classe preferida és Robòtica

Activitats

Escriu un programa que permeti sumar números, l'aplicació ha de funcionar de la manera següent: En primer lloc, el programa preguntarà per la quantitat de números que s'introduiran (tingues en compte que hi han respostes impossibles) A continuació, el programa ha de demanar cadascun d'aquests valors (poden ser decimals) Finalment el programa calcularà la suma de tots ells i mostrarà el resultat per pantalla.

Repeticions: bucles (for)

Activitat inicial

Comptador: Variable que porta el compte del nombre de vegades que s'ha complert una condició. i = i +1 Acumulador: Variable que en cada iteració va incrementant el seu valor en una quantitat (constant o variable). i = i + a

Escriure un programa en el qual es pregunti a l'usuari per una frase i una lletra, i mostri per pantalla el nombre de vegades que apareix la lletra en la frase.

Activitat avançada

Modifica el programa i fes que els caràcters interior només facin el perímetre i l’interior queda buit. i com ho faries en forma de triangle?

Crea un programa que demani dos nombres enters. Utilitzant caràcters producte (*), el programa ha de dibuixar un rectangle. La longitud de la base ve donada pel valor del primer número i la de l'altura pel valor del segon. Ex: base: 6 altura:3 * * * * * * * * * * * * * * * * * *

Objectius sessió

  1. Nous conceptes: llistes, condicions i bucles.
  2. Mini repàs
  3. Desenvolupament inicial del chatbot
  4. Test
  5. Depurar codi

Comparadors lògics

==, !=, <, >, =<, = >

Repeticions: bucles (while)

Operadors lògics

Bloc de codi repeteix un grup d'instruccions mentre es compleixi una condició. Un bucle for s'executarà un nombre fix de vegades. No obstant això un bucle while s'executarà un nombre indefinit d'ocasions, fins que deixi de complir-se una condició. Ves amb compte ja que un mal ús del while pot donar lloc a bucles infinits i problemes.

x = 5 while x > 0: x -=1 print(x) else: print("El bucle ha finalizado")

and, or, not

43 2 1 El bucle ha finalizado

Continue: omitir la resta del bloc de l’iteració actual i passa a la següent iteració. Break: terminar un bucle de manera anticipada i passa al següent

Comparadors lògics

==, !=, <, >, =<, = >

Activitats

Escriu un programa en Python que permeti jugar a “Pedra, Paper o Tisores” entre dos jugadors seguint aquestes instruccions: Cada jugador ha d’introduir la seva elecció: pedra, paper o tisores.Si algun escriu sortir, el programa acaba. El programa ha de mostrar les eleccions i decidir qui guanya: Pedra guanya a tisores Tisores guanya a paper Paper guanya a pedra Si tots dos escullen el mateix, hi ha empat El joc es repetirà mentre els jugadors no escriguin sortir.

Escriu un programa en Python que permeti jugar a “Endevina el Nombre” entre el jugador i l’ordinador. L’ordinador té un nombre fix (per exemple, 7). El jugador ha d’introduir un nombre. El programa ha de dir si el nombre introduït és massa alt, massa baix o correcte. El joc es repetirà fins que el jugador encerti el nombre o escrigui sortir.

Operadors lògics

and, or, not

Ampliació
Ampliació

from random import * print(random.randint(0, 30))

from random import * print(random.choice[A, B, C]

A # Nombre aleatori entre 0 i 30

A # Lletra aleatoria A, B, C

P03_Construïm el cervell

Definició del diàleg i estructura Objectiu: dissenyar el flux de conversa i la lògica condicional del bot.. Tasca: Taula de conversa amb mínim 8 entrades i respostes plantejades. Aquesta ha d’incloure: Pregunta, paraules claus esperades, resposta estàndard. Decidir quines entrades acceptarà (paraules claus, números per opcions, frases lliures).

Estructura bàsica del codi i escriptura inicial Objectiu: crear l’esquelet del chatbot en Python. TASCA FINAL: Codi bàsic inicial que faci --> benvinguda, demani nom, i es posi en bucle de conversa amb 3-4 respostes condicionals.

Comparadors lògics

==, !=, <, >, =<, = >

Exemples

Diccionaris

persona = {"nom": "Anna", "edat": 30, "ciutat": "Girona"}

Operadors lògics

Un diccionari és una estructura que guarda dades en parelles clau–valor. Permet accedir ràpidament a la informació mitjançant la clau. Característiques principals

  • Les claus són úniques (no es poden repetir).
  • Els valors poden ser de qualsevol tipus: números, cadenes, llistes…
  • Són mutables: podem afegir, modificar o eliminar elements.

and, or, not

Accedir a un valor

persona["nom"] # → "Anna"

Afegir o modificar una entrada

persona["edat"] = 31 persona["professió"] = "doctor"

dicc = {"clau": "valor"}

Eliminar una clau

del persona["ciutat"]

Activitat

Demana el nom a l'usuari i tres llibres que ha llegit aquest mes amb el nombre de pàgines de cadascun, guarda’ls en llistes i calcula el total de pàgines llegides, mostrant un missatge amb el nom de l’estudiant, els llibres i el total de pàgines.

Noms a les variables:
  • El nom ha de començar per una lletra o per un guió baix (_).
  • El nom no pot tenir espais en blanc.
  • És recomanable evitar utilitzar caràcters no anglesos (ñ, titlles…)
  • Python distingeix entre majúscules i minúscules (casi sensitive).
Interessa utilitzar noms de variables que tinguin relació amb la dada emmagatzemada.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

formes.insert(0, hexàgon)

formes

quadrat

hexàgon

cercle

triangle

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Igual que un text escrit pot redactar-se en diferents idiomes (espanyol, anglès, etc.), els programes informàtics poden desenvolupar-se en diferents llenguatges de programació. Cada llenguatge posseeix la seva pròpia sintaxi i regles. En aquesta unitat, estudiarem el llenguatge Python, una eina versàtil i àmpliament utilitzada, amb l'objectiu de desenvolupar programes que resolguin problemes senzills de forma estructurada i eficient.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Noms a les variables:
  • El nom ha de començar per una lletra o per un guió baix (_).
  • El nom no pot tenir espais en blanc.
  • És recomanable evitar utilitzar caràcters no anglesos (ñ, titlles…)
  • Python distingeix entre majúscules i minúscules (casi sensitive).
Interessa utilitzar noms de variables que tinguin relació amb la dada emmagatzemada.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Codi màquina: El codi màquina és l'únic llenguatge que un ordinador pot interpretar directament. Està compost exclusivament per seqüències de 1s i 0s que indiquen a la computadora com executar operacions bàsiques. Cada processador té el seu propi conjunt d'instruccions en codi màquina, la qual cosa ho fa dependent del maquinari específic. Per als éssers humans, aquest llenguatge és pràcticament incomprensible i el seu ús resulta extremadament laboriós, ja que requereix detallar cada instrucció en la seva forma més bàsica. Llenguatge assemblador: En els primers ordinadors, la programació es realitzava directament en codi màquina, la qual cosa era lent i propens a errors. Per a simplificar aquest procés, va sorgir el llenguatge assemblador, que empra abreviatures i paraules clau en anglès per a representar instruccions. A diferència del codi màquina, l'assemblador és més fàcil de llegir i escriure per als programadors, encara que continua sent dependent del maquinari específic. No obstant això , els ordinadors no poden executar-ho directament: és necessari un programa traductor, anomenat assemblador, que converteix el codi assemblador en codi màquina. Llenguatges d'alt nivell i compiladors. El llenguatge assemblador va facilitar la programació, però continuava requerint massa instruccions fins i tot per a tasques senzilles. Per a fer el procés més eficient, van sorgir els llenguatges d'alt nivell, que permeten escriure codi de forma més intuïtiva i pròxima al llenguatge humà. Aquests llenguatges empren sentències més comprensibles, similars a l'anglès i a la notació matemàtica habitual. Una sola instrucció en un llenguatge d'alt nivell pot equivaler a diverses línies de codi assemblador.

Igual que un text escrit pot redactar-se en diferents idiomes (espanyol, anglès, etc.), els programes informàtics poden desenvolupar-se en diferents llenguatges de programació. Cada llenguatge posseeix la seva pròpia sintaxi i regles. En aquesta unitat, estudiarem el llenguatge Python, una eina versàtil i àmpliament utilitzada, amb l'objectiu de desenvolupar programes que resolguin problemes senzills de forma estructurada i eficient.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Què és un Chatbot?

Un bot és un programa informàtic dissenyat per a simular converses humanes, ja sigui per text o veu, permetent als usuaris interactuar amb serveis digitals de manera automàtica. Utilitzen intel·ligència artificial (IA) i processament del llenguatge natural (PLN) per a entendre i respondre consultes de manera eficient.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

1. Claredat i precisió: Cada pas ha d'estar definit sense ambigüitats. Per exemple , "cuinar fins que el formatge bombollegi" és més precís que "cuinar fins que estigui fet". 2. Definició d'entrades: Ha d'especificar el tipus de dades que rebrà,com a números positius, paraules o llistes de valors. 3. Generació de sortides: Ha de produir resultats ben definits, com el número major entre dos valors o una llista ordenada.

4. Finitud: Ha de concloure en un nombre finit de passos i proporcionar un resultat en un temps raonable. 5. Correcció: Ha de garantir resultats correctes en totes les situacions previstes. 6. Gestió de precondicions: Si requereix condicions en les entrades (per exemple , acceptar sol números positius), aquestes han de complir-se per a garantir un funcionament adequat.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

1. Claredat i precisió: Cada pas ha d'estar definit sense ambigüitats. Per exemple , "cuinar fins que el formatge bombollegi" és més precís que "cuinar fins que estigui fet". 2. Definició d'entrades: Ha d'especificar el tipus de dades que rebrà,com a números positius, paraules o llistes de valors. 3. Generació de sortides: Ha de produir resultats ben definits, com el número major entre dos valors o una llista ordenada.

4. Finitud: Ha de concloure en un nombre finit de passos i proporcionar un resultat en un temps raonable. 5. Correcció: Ha de garantir resultats correctes en totes les situacions previstes. 6. Gestió de precondicions: Si requereix condicions en les entrades (per exemple , acceptar sol números positius), aquestes han de complir-se per a garantir un funcionament adequat.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Activitat

Fes un programa que:

  • Demani a l’usuari: nom, any de naixement, professió i ciutat.
  • Calculi l’edat a partir de l’any de naixement.
  • Guardi tota aquesta informació en un diccionari anomenat perfil.
  • Afegeixi al diccionari una nova clau "email" que demanaràs després.
  • Modifiqui la ciutat del perfil per una ciutat nova que també preguntarem.
  • Mostri el diccionari final i una frase en format natural:
  • "Sóc <nom>, tinc <edat> anys, treballo de <professió> i ara visc a <nova_ciutat>."

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.

Escriu un programa que simuli un robot amb sensors de bateria i obstacle. Si la bateria és baixa i hi ha obstacle, mostra "Atura el robot". Si la bateria és baixa però no hi ha obstacle, mostra "Busca carregador". En qualsevol altre cas, mostra "Segueix funcionant".

Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.