Semanttinen muisti (vektorisoidut faktat)
Säilyttäkää vektori-indeksissä irrallaan olevat faktat, jotka agentti on oppinut käyttäjästä tai maailmasta.
Semanttinen muisti (vektorisoidut faktat) on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.
Mitä semanttinen muisti on?
Semanttinen muisti sisältää agentin tuntemia irrallisia faktoja käyttäjästä, maailmasta ja yrityksestä. Toisin kuin episodiseen muistiin, siihen ei liity tiettyyn tapahtumaan sidottua aikaleimaa.
Esimerkkejä:
- ”Käyttäjän nimi on Alice.”
- ”Alice pitää Celsius-asteista.”
- ”Nykyinen hinnoittelutaso on Pro, 20 dollaria kuukaudessa.”
Tallennusmuoto
Vektorivarasto + rakenteiset metatiedot:
CREATE TABLE semantic_facts (
id UUID PRIMARY KEY,
user_id TEXT NOT NULL,
fact TEXT NOT NULL,
embedding vector(1536),
source TEXT, -- 'extracted' / 'user-stated' / 'system'
confidence REAL DEFAULT 1.0,
created_at TIMESTAMPTZ DEFAULT NOW()
);Faktojen poimiminen keskusteluista
Suorittakaa jokaisen istunnon jälkeen LLM-poimija:
extract_prompt = '''
From the conversation below, list any new facts about the user.
Return JSON: [{"fact": "...", "confidence": 0.0-1.0}]
Conversation:
{transcript}
'''
print(extract_prompt.strip())
Saving Extracted Facts
import uuid
for f in extracted:
vec = embed(f['fact'])
conn.execute('''
INSERT INTO semantic_facts (id, user_id, fact, embedding, confidence, source)
VALUES (%s, %s, %s, %s, %s, 'extracted')
''', (str(uuid.uuid4()), user_id, f['fact'], vec, f['confidence']))Haku päättelyhetkellä
Hakekaa jokaisella uudella kyselyllä asiaankuuluvat faktat ja lisätkää ne järjestelmäkehotteeseen:
def relevant_facts(user_id, query, k=5):
qvec = embed(query)
rows = conn.execute('''
SELECT fact FROM semantic_facts
WHERE user_id = %s
ORDER BY embedding <=> %s LIMIT %s
''', (user_id, qvec, k))
return [r[0] for r in rows]
facts = relevant_facts(user_id, user_question)
system = SYSTEM_PROMPT + '\n\nKnown facts:\n' + '\n'.join(facts)Faktojen päivittäminen
Mitä jos fakta muuttuu? ”Alice pitää Celsius-asteista” -> ”Alice pitää nykyään Fahrenheit-asteista”. Kaksi strategiaa:
- Merkitkää vanha fakta vanhentuneeksi (lisätkää updated_at, soft delete)
- Tai tallentakaa ristiriidat ja ratkaiskaa ne haun yhteydessä
Faktojen yhteensovittaminen
Tarkistakaa poiminnan aikana ristiriidat olemassa olevien faktojen kanssa:
def reconcile(user_id, new_fact):
similar = relevant_facts(user_id, new_fact, k=3)
response = llm.invoke(f'Is the new fact ({new_fact}) consistent with existing facts ({similar})? If contradicting, return the obsolete one.')
if response.has_contradiction:
mark_obsolete(response.obsolete_id)
save_fact(new_fact)Confidence-Weighted Retrieval
rows = conn.execute('''
SELECT fact FROM semantic_facts
WHERE user_id = %s AND confidence > 0.6
ORDER BY embedding <=> %s LIMIT %s
''', ...)Faktojen vanheneminen
Jotkin faktat vanhenevat, kuten ”nykyinen projekti on X”. Lisätkää TTL tai heikentäkää luottamusta ajan myötä:
UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';Yksityisyyden kannalta arkaluonteiset faktat
Salatkaa henkilötiedot ennen tallentamista. Jotkin faktat, kuten terveys- ja taloustiedot, tarvitsevat lisäsuojaa — tallentakaa ne erilliseen, tiukemmin suojattuun tauluun.
Käyttäjän muokattavissa olevat faktat
Näyttäkää käyttäjille heidän tallennetut faktansa ja antakaa heidän muokata tai poistaa niitä. Tämä rakentaa luottamusta ja vähentää karmivia muistivirheitä.
Muisti työkaluna
Tarjotkaa muistitoiminnot työkaluina, joita agentti voi itse kutsua:
tools = [
{'name': 'remember_fact', 'description': 'Save a new fact about the user'},
{'name': 'forget_fact', 'description': 'Remove a stored fact'},
{'name': 'recall_facts', 'description': 'Search relevant facts for a query'}
]
import json
print(json.dumps(tools, indent=2))
Letta ja MemGPT
Letta-kehys (aiemmin MemGPT) toteuttaa agentin muistia suuressa mittakaavassa erillisellä ”core”-muistilla (aina kontekstissa) ja ”archival”-muistilla (vektorihakua käyttävä).
Semanttinen ja episodinen muisti
Miten semanttinen muisti eroaa episodisesta muistista?
Yhteenveto
Tallentakaa käyttäjää koskevat faktat vektorivarastoon, hakekaa asiaankuuluvat K faktat jokaisella vuorolla ja lisätkää ne järjestelmäkehotteeseen. Sovittakaa ristiriidat yhteen ja heikentäkää luottamusta tai vanhentakaa faktat ajan myötä.
Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 60
- Oppitunnit
- 239
Usein kysytyt kysymykset
Onko oppitunti ”Semanttinen muisti (vektorisoidut faktat)” ilmainen?
Kyllä – oppitunnin ”Semanttinen muisti (vektorisoidut faktat)” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Semanttinen muisti (vektorisoidut faktat)”?
Säilyttäkää vektori-indeksissä irrallaan olevat faktat, jotka agentti on oppinut käyttäjästä tai maailmasta. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Semanttinen muisti (vektorisoidut faktat)”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?
Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Episodinen muisti (istuntokohtainen historia)
- Semanttinen muisti (vektorisoidut faktat)
- Proseduraalinen muisti (taitokirjasto)
- Muistin vanheneminen ja roskienkeruu