Gosoft Connect - tekoälychat, joka nojaa omiin dokumentteihinne

Multi-tenant-widget-palvelu, jonka tekoälychat vastaa kunkin asiakkaan omasta tietopohjasta - koko hakupino itse ylläpidettynä yhdellä CPU-nodella.

Mikä se on

Gosoft Connect on multi-tenant-SaaS, jonka olen suunnitellut ja rakentanut yksin GoSoftissa, omassa yhtiössäni: upotettavia verkkosivuwidgettejä - tekoälychat, livechat, lomakkeet, popupit - ja hallintaportaali. Jokaisella asiakastyötilalla on tietopohja, jota täytetään neljällä tavalla: liittämällä tekstiä, noutamalla URL, lataamalla tiedostoja tai indeksoimalla kokonainen sivukartta. Asiakkaan sivuston tekoälychat vastaa kävijöiden kysymyksiin tähän tietopohjaan nojaten, striimaten token kerrallaan, ja sillä on työkalut yritystietojen hakuun, liidien keräämiseen ja keskustelun siirtoon ihmiselle. Chatin ympärillä ovat koostesähköpostit, lomakevastausten tekoälytiivistelmät, keskustelujen luokittelu, öisin ajettavat raportit kysymyksistä, joihin botti ei osannut vastata, sekä syötteen ja vastausten moderointi.

Hakuputki

Vastaukset pohjautuvat hybridihakuun: tiheät vektorit ja tekstihaun pisteytys yhdistetään reciprocal rank fusion -menetelmällä, minkä jälkeen cross-encoder järjestää tulokset uudelleen, dokumenttikohtaisella monimuotoisuusrajalla ja kielitietoisella haulla suomen-, ruotsin- ja englanninkieliseen sisältöön. Paloittelu on kappaletietoista, ja jokainen pala saa kontekstiotsikon; sisältöhashien ansiosta muuttumattomia dokumentteja ei koskaan upoteta uudelleen.

kävijän kysymysyksi Linux-node, pelkkä CPUtiheä hakubge-m3 → pgvector HNSWtekstihakutsvector, BM25-tyyliinPostgreSQLyksi tietokanta kaikellereciprocal rank fusionuudelleenjärjestys, cross-encoderbge-reranker-v2-m3, q8monimuotoisuusrajaenintään 2 palaa per dokumenttiLLMainoa ulkoinen kutsuvastaus, striimattuna token kerrallaan
Yksinkertaistettu hakuputki.

Stack & infrastruktuuri

Jälleen tarkoituksella pieni: kaikki pyörii yhdellä Linux-nodella, pelkällä CPU:lla. Upotusmalli (bge-m3) ja uudelleenjärjestäjä (bge-reranker-v2-m3) ajetaan paikallisesti ONNX:llä - ei GPU:ta, ei embedding-API:a. Asiakkaan dokumentit lähtevät koneelta täsmälleen yhtä asiaa varten: itse LLM-kutsua (OpenAI, malli valittavissa työtilakohtaisesti). Vektorivarasto on tavallinen PostgreSQL pgvectorilla - yksi tietokanta kaikelle. Bun ja Hono taustalla, Solid.js-portaali, nginx edessä.

Insinöörityö

Luvut, jotka voin julkaista, ovat insinöörilukuja. Uudelleenjärjestäjän kvantisointi pudotti haun 14 sekunnista 4,1:een CPU:lla, itse järjestysvaiheen 5,6:sta 1,1:een. Varhainen kuormitustesti pudotti kaksi kymmenestä samanaikaisesta chatista ja kaatoi prosessin, kun muistinkäyttö oli 10,4 GB; inferenssisemaforin ja eräpaloittelun jälkeen sama testi palveli 10/10 muistihuipun ollessa 6,8 GB, ilman yhtäkään uudelleenkäynnistystä. Tuotannossa kesäkuusta 2026 lähtien.