Kategori: Lär dig om AI

  • IA-AI – Skräddarsydda IT- och AI-lösningar för företag

    Jag heter Alf Mikael Cromsjö och har över 20 års erfarenhet av systemutveckling, webblösningar och automation. Under åren har jag hjälpt företag i olika storlekar att bli mer effektiva, skalbara och konkurrenskraftiga – från webbutiker och WordPress-lösningar till avancerade integrationer och automatiserade processer.

    Varför anlita mig?

    ✔ Nöjd-kund-garanti – de första 20 timmarna kostar 600 kr + moms, och du betalar endast om du är nöjd.
    ✔ Snabb leverans – jag är van att snabbt sätta mig in i nya behov och leverera värde tidigt.
    ✔ Bred kompetens – allt från klassisk webbutveckling till AI, databaser och automatisering.
    ✔ Flexibilitet – jag tar gärna på mig kortare projekt eller deltidsuppdrag.

    Mina senaste projekt:

    • Byggt en SaaS med AI-bot (LangChain) som indexerar hemsidor och skapar RAG-data.
    • Utvecklat ett databassystem för blixtsnabb prototyping, använt till att skapa ett faktureringssystem åt ett startup inom egenanställning.
    • Levererat ett Call Center-system med htmx, Alpine och Jinja för en ny kund.

    Mitt fokus

    Jag tror på praktiska lösningar som gör skillnad i verksamheten – inte bara snygg kod. Med en kombination av lång erfarenhet och nya tekniker inom AI och automation kan jag hjälpa dig att ta ditt företag till nästa nivå.

    👉 Är du redo att se hur jag kan effektivisera ditt företag?
    Kontakta mig idag så pratar vi om era behov.

  • Portfolio – Design

    Alf Mikael Cromsjö

    Utöver systemutveckling så designar jag hemsidor, logotyper, visitkort, produktblad och andra trycksaker. Under mina år som IT-konsult har jag ofta tagit på mig rollen att utveckla en grafisk profil åt mina kunder med gott resultat. Här kommer några stickprov från min portfolio.

    Space of love är en festival på Öland med inriktning på yoga. Det har varit en kund under 5 års tid där jag utvecklat en grafisk profil, skapat hemsidor, reklam samt tryckmaterial.

    För Tingelingakupunktur har jag utvecklat logotyp, grafisk profil och skapat hemsida och produktblad.

    Probioform är ett företag som säljer probiotika och vitaminer. För den kunden har jag skapat hemsida, etiketter och andra trycksaker.

    Jag har skapat många hemsidor och designer till företag, speciellt inom friskvård, healing och hälsa.

  • CV: Alf Mikael Cromsjö

    Alf Mikael Cromsjö
    Cromsjö Consulting
    alf.cromsjo@gmail.com
    ia-ai.se
    linkedin.com/in/cromsjo


    Om mig

    Jag är Alf Mikael Cromsjö, en erfaren IT-konsult med över 20 års erfarenhet av systemutveckling, webblösningar och automation. Jag skapar skräddarsydda lösningar som gör företag mer effektiva och konkurrenskraftiga – från webbutiker och WordPress-lösningar till avancerade integrationer och automatiserade processer.

    Jag tar gärna på mig kortare projekt eller deltidsuppdrag och kan snabbt sätta mig in i nya behov. Med nöjd kund-garanti och snabb leverans gör jag det enkelt för er att testa mina tjänster.


    Kompetensområden

    • Systemutveckling: PHP, Python, Java, C#, Node.js
    • Webb & frontend: HTML, CSS, JavaScript, TypeScript
    • Databaser: MySQL, ODBC
    • AI & automation: LLMs, prompt engineering, LangChain
    • Integrationer: API-hantering, Visma, Magento, WooCommerce
    • Övrigt: GitHub, Linux/Windows, bild- och videoredigering

    Utvalda projekt

    • AI-chattbot som SaaS – byggd med Python och LangChain
    • Hyundai Bilar – statistiksystem & kreditvärdering
    • Profoto – automation av kvalitetskontroll
    • Moosbox – digitalisering av kvitton och dokument
    • A6 Lås & Larm – systemintegration Visma/Magento

    Utbildning

    Datateknik, Mittuniversitetet, Sundsvall
    1999–2001 – specialisering inom AI och distribuerade system


    CV och Referenser

    Alf Mikael Cromsjö AI CV


    Tillgänglighet

    Jag är tillgänglig omgående och kan börja arbeta med nöjd kund-garanti under en testperiod. Kontakta mig gärna för ett första samtal eller en snabb offert.

  • Vår chattbot är här!

    Din AI-partner för tillväxt: Nu lanserar vi vår egen chattbot – skräddarsydd för webbshoppar och kundnära företag

    AI är inte längre ett framtidsscenario – det är här, och det är nu. Hos IA-AI har vi arbetat i flera år med att hjälpa företag växa genom intelligent automation och smarta IT-lösningar. Nu tar vi nästa steg: vår egen AI-drivna chattbot är installerad hos vår första kund – och vi öppnar upp för att fler företag ska få testa.

    Den nya chattbotten är designad särskilt för webbshoppar och företag som vill ge sina besökare snabb och korrekt information – utan att belasta kundtjänst eller förlora affärer på obesvarade frågor.

    Vad gör chattbotten?

    • Indexerar automatiskt hela din hemsida och valfri dokumentation
    • Ger direkta, träffsäkra svar på svenska – med naturligt språk
    • Kräver minimal teknisk integration: en rad kod, under 5 minuter att installera

    Målet är enkelt: ge dina kunder svar på sina frågor direkt – oavsett om det handlar om frakt, returpolicy, produktinformation eller tjänsteutbud. Mindre friktion = fler konverteringar.

    Vem är det här för?

    Den här lösningen är perfekt för små och medelstora företag som:

    • Driver e-handel eller erbjuder tjänster online
    • Vill ge kunder snabbare svar utan att utöka supportteamet
    • Letar efter ett enkelt sätt att komma igång med AI – utan omfattande projekt eller teknisk skuld

    Vi vet att många företag vill använda AI – men inte riktigt vet hur man börjar. Därför har vi byggt vår chattbot med ett tydligt fokus: det ska vara enkelt, konkret och skapa värde från dag ett.

    Testa gratis – begränsat till 10 företag

    Vi bjuder nu in 10 företag att testa vår chattbot helt kostnadsfritt. Det är vår pilotfas – och ett unikt tillfälle att få tillgång till en avancerad AI-lösning utan kostnad. Vi hjälper till med installation och anpassning, och finns med som stöd hela vägen.

    Anmäl ditt företag på https://ia-ai.se
    Se chattbotten i action på https://spaceoflove.nu

    Om oss – IA-AI

    Vi är ett team av IT-experter med mångårig erfarenhet av systemutveckling, automation och AI. Vår drivkraft är att hjälpa företag att arbeta mer effektivt, konkurrenskraftigt och datadrivet.

    Vi erbjuder både färdiga AI-lösningar och skräddarsydd utveckling. Alltid med fokus på enkelhet, värdeskapande och kunskapsöverföring. Vårt mål är att ni ska kunna stå på egna ben och arbeta strategiskt med AI – på riktigt.

    Vill du veta mer om hur AI kan skapa värde i just din verksamhet? Hör av dig – vi pratar gärna.

    Kontakt: info@ia-ai.se
    Läs mer på: https://ia-ai.se

  • Kontexthantering i RAG-modeller

    Titel:
    Ett avancerat lagringssystem för kontexthantering i RAG-modeller: Hierarkisk gruppering och semantisk filtrering

    Sammanfattning:
    Denna artikel presenterar ett designförslag för ett avancerat lagringssystem för RAG (Retrieval-Augmented Generation) som hanterar kontext på ett semantiskt och hierarkiskt plan. Systemet bygger på att lagra fråga-svar-par i en semantisk databas, extrahera relevanta metadata, gruppera dokument utifrån semantisk likhet, och skapa flernivå-abstrakter för effektiv kontextåteranvändning. Artikeln diskuterar systemets komponenter, jämför med andra tillvägagångssätt och ger ett exempel på en praktisk implementering.

    1. Inledning
    RAG-modeller kombinerar generativ AI med informationsåtervinning för att producera svar som är både informativa och grundade i externa källor. En utmaning i dessa system är hur man hanterar och strukturerar tidigare konversationer och dokument för att ge relevant kontext. Vi presenterar här ett system som kombinerar semantisk analys, relevansbedömning, gruppbaserad lagring och hierarkisk abstraktion.

    2. Systemarkitektur
    Systemet består av följande huvudkomponenter:

    Datainsamling: Alla fråga-svar-par lagras i en databas tillsammans med metadata (tid, plats, session-ID).

    Semantisk analys: Varje post analyseras för att extrahera:

    Abstrakt (sammanfattning)

    Nyckelord

    Embedding-vektor

    Relevansbedömning: Varje dokument får ett sammansatt relevansvärde baserat på:

    Likhet med aktuell fråga

    Likhet med sin grupp

    Tid- och sessionsnärhet

    Gruppering: Dokument med hög inbördes likhet grupperas i dynamiska kluster om exakt åtta dokument.

    Hierarkisk abstraktion: Varje grupp får ett eget abstrakt. Dessa kan vidare grupperas för att skapa flernivå-kontext.

    RAG-sammanställning: Vid ny fråga så används relevanta dokumentabstrakter för att bygga prompten.

    3. Jämförelse med andra tekniker
    Traditionella RAG-system använder ofta enkel vektorbaserad sökning med t.ex. FAISS eller Pinecone. Dessa saknar:

    Temporal kontextkänslighet

    Hierarkisk informationsstruktur

    Explicit dokumentrelevans och gruppering

    Vårt system integrerar principer från knowledge graphs, topic modeling och text clustering för att skapa ett mer medvetet kontextlandskap.

    4. Exempel på implementering
    Antag att en användare ställer frågor om energipolitik. Systemet lagrar dessa som:

    Fråga 1: “Hur påverkar elprisreglering marknaden?”

    Fråga 2: “Vilken effekt har subventioner på elproduktion?”

    Varje fråga och svar lagras med embedding och metadata. Systemet skapar en grupp av dessa tillsammans med sex tidigare energirelaterade poster. Ett abstrakt genereras för gruppen: “Politiska åtgärder och deras inverkan på energimarknaden.”

    Vid en ny fråga som: “Hur har elmarknaden utvecklats efter 2022?” kommer denna grupp att inkluderas i RAG-sammanställningen om dess relevansscore är tillräckligt hög.

    5. Slutsats
    Genom att strukturera lagrad information i dynamiska grupper och använda hierarkiska abstrakter, kan RAG-system bli mer kontextmedvetna, responsiva och informativa. Detta tillvägagångssätt är ett steg mot mer sofistikerad AI med semantisk minnesstruktur.

    6. Framtida arbete
    Fortsatt forskning kan inkludera adaptiva tröskelvärden för gruppering, visualisering av kontextrelationer, och samverkan med kunskapsgrafer för ännu djupare förståelse.

  • AI snabbar upp utveckling med 1000%

    Från utvecklare till AI-arkitekt – skapa mer, snabbare och smartare

    Tänk dig att bygga en komplett webbtjänst, med 10 AI-funktioner, dynamiskt gränssnitt, interaktiva dialoger och all logik – utan att själv skriva en enda rad kod. Det låter otroligt, men är redan verklighet.

    Med hjälp av några strategiskt utformade prompter kan jag låta AI göra hela grovjobbet. Min roll? Att tänka som en arkitekt. Jag planerar, strukturerar och beskriver vad jag vill ha – och AI gör resten.


    🚀 Så här byggde jag flera populära AI-tjänster på några minuter

    • ✅ En meny med 10 trendande AI-tjänster
    • ✅ Dynamiskt innehåll som ändras beroende på val
    • ✅ Skicka-knapp och svarsfält med AI-genererat svar
    • ✅ Elegant övergång med jQuery slideDown()
    • ✅ Automatisk uppstart av första tjänsten efter 5 sekunder
    • ✅ Dialogruta med marknadsbudskap

    💡 Prompt 1: Bygg hela användargränssnittet

    Skapa en startsida med en meny som visar populära AI-tjänster. Använd Bootstrap och jQuery. När man klickar på en tjänst ska en dold sektion med titel, beskrivning, en dold prompt och texteditor visas med slideDown(). Under editorn en “Skicka”-knapp och underst en div där svaret från AI visas, också med slideDown(). När en annan tjänst väljs, rensa all tidigare data med jQuery och visa den nya.

    Varför det fungerar: Denna prompt specificerar tydligt struktur, teknik (Bootstrap/jQuery), beteende (slideDown) och användarflöde. Det är en komplett instruktion med både design, interaktion och logik – vilket AI hanterar utmärkt.

    💡 Prompt 2: Generera innehåll automatiskt

    Skapa 10 AI-tjänster. Varje tjänst ska ha en titel, beskrivning, en välformulerad prompt samt en förklaring (“Varför”) som beskriver varför prompten är effektiv och vilka prompttekniker som används.

    Varför det fungerar: Prompten skapar ett färdigt innehållsblock som kan användas direkt i webbtjänsten. Den utnyttjar metaprompting (att låta AI förstå hur den själv ska formulera effektiva prompts), vilket leder till högre kvalitet och struktur.

    💬 Prompt 3: Skapa dialog och säljinnehåll

    Skapa en centrerad dialogruta som visas när användaren klickar i ett textarea-fält eller på “Skicka”-knappen. Använd fade-in och shake-effekt. I rutan ska det stå en säljande text:
    Titel: Vill du ha AI-tjänster till ditt företag?
    Text: Visste du att hela denna hemsida, inklusive alla funktioner, till och med denna text, har genererats med hjälp av ett fåtal smarta prompter? Allt tog kanske 5 minuter att sätta upp. Vill du också ha tillgång till kraften bakom AI?
    Lägg till en knapp som säger “Kontakta oss” som länkar till #kontakt.

    Varför det fungerar: Det här är ett exempel på AI-genererad marknadsföring direkt i gränssnittet. Prompten kombinerar visuell interaktion (dialog), känsla (shake/fade) och konvertering (CTA) – allt med minimal input.


    🔬 Testa själv!

    Du kan själv se allt i praktiken här:
    Testa demo på ia-ai.se/code/ai-service.html


    🎯 Slutsats

    Med hjälp av tre genomtänkta prompts har jag:

    • Byggt en hel användarupplevelse
    • Skapat innehåll till 10 tjänster
    • Lagt till dynamiska UI-effekter
    • Producerat säljande copy
    • Automatiserat hela interaktionen

    Och det mest imponerande?

    ➡️ Hela denna artikel är också AI-genererad – och allt skapat på under en timme med några få smarta prompter.

    Vill du också skapa mer på mindre tid? Lär dig hur du skriver smartare AI-frågor!
    Kontakta oss

  • Välj rätt AI-leverantör

    Automatisering har under de senaste åren blivit en central del av många företags strategier för att förbättra effektiviteten och optimera arbetsflöden. Det finns idag ett brett utbud av verktyg som underlättar denna process, ofta med användarvänliga funktioner som drag-och-släpp för att skapa automatiserade flöden. Exempel på sådana lösningar är Zapier och n8n, vilka är populära bland företag som vill automatisera autopostningar och chattfunktioner på olika plattformar.

    Dessa verktyg är ofta tillräckliga för många användare och kan hantera en mängd olika scenarier utan behov av omfattande programmeringskunskaper. De möjliggör snabb och enkel integration mellan olika system, vilket gör det lättare att automatisera rutinuppgifter och frigöra tid för mer värdeskapande aktiviteter. Dock har de sina begränsningar när det gäller att hantera mer komplexa eller skräddarsydda lösningar. För att kunna integrera dessa i ett företags unika systemflöden krävs ofta en djupare förståelse av programmering och systemintegration.

    Vårt team av utvecklare har över tio års erfarenhet av automatisering, vilket gör att vi kan leverera lösningar av hög kvalitet som är anpassade efter våra kunders specifika behov. Oavsett om det gäller att skapa helt nya automatiserade flöden från grunden eller att utveckla specialanpassade plugins för befintliga verktyg, kan vi säkerställa att lösningarna fungerar sömlöst och effektivt.

    Det är viktigt att vara medveten om riskerna med att köpa färdiga AI-lösningar från oseriösa eller mindre erfarna aktörer. Dessa lösningar kan ofta vara skapade av personer utan tillräcklig teknisk kompetens, vilket kan leda till att de inte levererar de resultat som förväntas eller att de inte når upp till de krav som ställs under ett projekt. Att anlita en erfaren leverantör med gedigen kunskap inom både automatisering och AI-teknik är avgörande för att säkerställa att projektet genomförs på ett framgångsrikt sätt.

    Vi kan skapa automatiserade flöden helt från grunden och anpassa lösningarna efter just dina behov. Även om du använder verktyg som n8n, kan det ibland krävas utveckling av skräddarsydda plugins för att tillgodose unika krav. Därför är det av yttersta vikt att samarbeta med en partner som har den erfarenhet och kompetens som krävs för att genomföra projektet på ett professionellt och kvalitetsmässigt tillfredsställande sätt.

  • Svenska chattbottar

    Svenska chattbottar: När språket blir en teknisk utmaning

    Att bygga en chattbot som fungerar sömlöst på svenska är betydligt mer komplext än man kan tro. Även om AI-assistenter blivit vardag, är språket fortfarande en tröskel – särskilt när teknologin utvecklas i första hand med engelska som utgångspunkt. För den som vill erbjuda en välfungerande bot på svenska krävs därför både teknisk kreativitet och kostnadsmedvetenhet.

    Svenska är fortfarande en andra klassens medborgare i AI-världen

    De allra flesta kommersiella språkmodeller är tränade i huvudsak på engelskspråkiga data. Svenska – liksom andra mindre språk – får betydligt mindre uppmärksamhet. Det innebär att även om en modell tekniskt sett stöder svenska, är dess förståelse ofta grundare, och dess svar kan bli sämre i både relevans och nyans.

    De modeller som verkligen hanterar svenska väl kräver lokal installation och egna servrar och är ofta stora – och därmed dyra att köra. För många kunder, särskilt inom små och medelstora företag, är det avgörande att hålla nere driftskostnaden för en AI-lösning.

    En kreativ lösning: Översättning in och ut

    För ett konkret användarfall har jag testat en alternativ strategi: att översätta allt innehåll från svenska till engelska innan frågan ställs till AI:n, och sedan översätta svaret tillbaka till svenska i realtid. Det möjliggör användning av en mindre, billigare språkmodell som är optimerad för engelska – samtidigt som slutanvändaren upplever interaktionen som helt svensk.

    Den här lösningen innebär visserligen en extra översättningskostnad, men kan ändå vara mer kostnadseffektiv än att använda en stor svenskspråkig modell direkt.

    Hur ser kostnadsbilden ut?

    Nedan visas en jämförelse av kostnader för att besvara 100 genomsnittliga frågor med de två metoderna:

    ModelltypKostnad / 100 frågorSvenskaEngelska
    GPT-4 Turbo80–120 kr⭐⭐⭐⭐⭐ (mycket bra)⭐⭐⭐⭐⭐ (exceptionell)
    GPT-3.5 Turbo15–25 kr⭐⭐ (begränsad)⭐⭐⭐⭐ (mycket bra)

    • GPT-4 Turbo hanterar svenska flytande och naturligt, nära mänsklig nivå. Den är också överlägsen på engelska.
    • GPT-3.5 Turbo fungerar mycket bra på engelska men har svagare stöd för svenska – särskilt i längre svar och kontext.

    Att bygga chattbottar för svenska marknaden kräver mer än bara tekniskt kunnande – det kräver även förståelse för både språkliga och ekonomiska kompromisser. Strategin att översätta är ett exempel på hur man med relativt enkla medel kan kombinera prestanda och kostnadseffektivitet.

    Det är min förhoppning att modeller med starkare stöd för svenska blir mer tillgängliga över tid. Men tills dess fortsätter vi att arbeta kreativt – för att göra AI tillgänglig på svenska, utan att det kostar skjortan.

  • Skräddarsydda chattbottar

    Skräddarsydda chattbottar kräver mer än API-anslutning:

    Att implementera en intelligent chattbot är i dag ett naturligt steg för många företag som vill förbättra sin digitala kundinteraktion. Men bakom en bot som faktiskt levererar värde ligger ofta ett betydande tekniskt och strategiskt arbete – särskilt när lösningen ska anpassas för två helt olika verksamheter, som en hälsokostbutik och en musikfestival.

    I mitt arbete med att utveckla chattbottar för dessa två kunder har jag fått tillämpa både teoretisk och praktisk kunskap inom språkmodeller, med särskilt fokus på RAG-teknik och frågestyrd datatillgång.

    Utgångspunkten: Det handlar inte bara om att koppla upp sig mot ett API

    Många ser ChatGPT:s API som en snabb väg till en AI-assistent, men i praktiken krävs betydligt mer för att skapa en bot som faktiskt är meningsfull i ett specifikt sammanhang. Det första steget är att identifiera vilken information AI:n ska ha tillgång till. Även om det är tekniskt möjligt att efterträna en språkmodell på en hel webbplats, är det sällan praktiskt. Modellträning är resursintensivt, kräver regelbundna uppdateringar och medför risker som överträning och ökade hallucinationer – det vill säga när modellen “gissar” svar istället för att ge faktabaserad information.

    RAG – ett effektivt alternativ till modellträning

    Ett mer flexibelt tillvägagångssätt är så kallad Retrieval-Augmented Generation (RAG). Här fungerar AI:n som en slags semantisk sökmotor: den får en fråga, hämtar relevant information från externa källor – ofta organisationens egen webbplats – och genererar ett svar baserat på den kontext den fått. Det är en kraftfull metod som gör det möjligt att använda generella språkmodeller i mycket specifika sammanhang, utan att behöva träna om modellen från grunden.

    Utmaning: Att välja rätt information och rätt mängd

    Trots RAG:s fördelar kvarstår en central utmaning: språkmodeller har ett begränsat “kontextfönster”, alltså hur mycket information de kan bearbeta samtidigt. Det innebär att det inte är möjligt att skicka med hela webbplatsens innehåll i varje förfrågan. Därför delas innehållet upp i mindre segment – så kallade chunks – som indexeras med hjälp av semantiska embeddings.

    När en användare ställer en fråga gör systemet en semantisk sökning bland dessa chunks och väljer ut de mest relevanta som underlag för AI:ns svar. Problemet är att varje enskilt chunk innehåller relativt lite information, och endast ett fåtal kan skickas med i varje anrop. Det gör det svårt för AI:n att skapa mer omfattande översikter, exempelvis att lista alla produkter som innehåller C-vitamin.

    Lösningen: Förberäknade sammanställningar

    För att lösa detta utvecklade vi ett system där vissa typer av data förbereds i förväg. Exempelvis kan vi skapa tabeller över butikens produkter där vi på förhand sammanfattar innehåll, användningsområden och relevanta effekter. Dessa tabeller genereras med hjälp av AI, men körs endast periodvis, eftersom bearbetningen är resurskrävande.

    Vid mer komplexa frågor – som att identifiera produkter som “motverkar trötthet och främjar mental skärpa” – används dessa tabeller för att poängsätta och sortera information innan resultatet sparas i ett nytt, sökbart format som kan återanvändas av chattbotten.

    Nästa steg: En mer generell lösning

    Min långsiktiga målsättning är att göra processen mer generisk och mindre beroende av manuell anpassning för varje ny webbplats. Detta innebär bland annat att låta AI först analysera webbplatsens struktur, kategorisera innehåll, identifiera målgrupper och skapa relevanta sammanfattningar. Från dessa sammanställningar genereras hypotetiska användarfrågor som i sin tur används för att skapa förberäknade svarspaket.

    På detta sätt kan jag bygga ett AI-stöd som är både snabbt, relevant och skalbart – oavsett om användaren söker ett kosttillskott mot trötthet eller letar efter nästa artistsläpp på en festival.

  • Hur bygger jag en chattbot?

    Bygg din egen chattbot med Ollama och LangChain

    Att bygga en chattbot kan verka som en stor utmaning, men med rätt verktyg och lite vägledning kan du skapa en kraftfull och användbar bot. I den här guiden kommer vi att använda Ollama och LangChain för att bygga en RAG-assistent som kan hämta och bearbeta information från en webbshop.

    Verktyg och installation

    För att komma igång behöver vi några verktyg och bibliotek. Här är vad vi kommer att använda:

    • Scrapy: Ett kraftfullt ramverk för att extrahera data från webbplatser.
    • MySQL: En databas för att lagra webbsidor och deras innehåll.
    • LangChain: Ett bibliotek för att hantera dokument och embeddings.
    • Ollama: För att skapa embeddings och hantera chattmodeller.
    • ChromaDB: För att lagra och hämta embeddings.

    Steg 1: Ladda ner innehåll från en webbsida

    Vi börjar med att skapa en Scrapy-spindel för att hämta innehåll från en webbsida. Här är en enkel spindel som laddar ner sidor från en specifik domän och sparar dem i en MySQL-databas.

    class MySpider(scrapy.Spider):
        name = "site"
        start_urls = ["https://din-butik.se/"]
        allowed_domains = ["din-butik.se"]
    
        def parse(self, response):
            url = response.url
            text = BeautifulSoup(response.text, 'html.parser').get_text(separator=' ', strip=True)
            self.save_page(url, text)
    
            links = response.css('a::attr(href)').getall()
            for link in links:
                if link.startswith('/') or self.allowed_domains[0] in link:
                    yield response.follow(link, callback=self.parse)

    Steg 2: Skapa vektordatabas

    Efter att vi har hämtat innehållet från webbsidorna, behöver vi skapa en vektordatabas med hjälp av LangChain. Detta gör vi genom att dela upp texten i mindre delar och skapa embeddings.

    documents = [Document(page_content=row["html"], metadata={"source": row["url"]}) for row in rows]
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=400, chunk_overlap=0)
    all_splits = text_splitter.split_documents(documents)
    
    vectorstore = Chroma.from_documents(
        documents=all_splits,
        embedding=OllamaEmbeddings(),
        persist_directory="./chroma_db"
    )

    Steg 3: Hantera frågor och svar

    Nu när vi har vår vektordatabas, kan vi använda den för att hantera frågor. Vi använder en RAG-modell för att generera svar baserat på den information vi har samlat in.

    RAG_TEMPLATE = """
    Du är en säljare för vår webbutik. Använd endast informationen från <RAG_information> och <history> för att svara.
    <RAG_information>{context}</RAG_information>
    <history>{context}</history>
    Svara på följande fråga: {question}"""
    
    rag_prompt = ChatPromptTemplate.from_template(RAG_TEMPLATE)
    
    chain = (
        RunnablePassthrough.assign(context=lambda input: format_docs(input["context"]))
        | rag_prompt
        | ChatOllama(model="llama3.2:latest")
        | StrOutputParser()
    )
    
    question = "Har du någonting med gurkmeja?"
    docs = vectorstore.similarity_search(question, k=10)
    response = chain.run({"context": docs, "question": question})
    print(response)

    Och där har du det! Din egen chattbot som kan hämta och bearbeta information från webbsidor. Genom att använda Ollama och LangChain har vi skapat en kraftfull lösning för att hantera frågor och ge relevanta svar. Lycka till med ditt projekt!