Tekoälyagentit LangChainilla ja autonomiset työnkulut · Oppitunti

Retrievert ja kontekstuaalinen tiivistäminen

Muutatte vektoritietokannan säädettäväksi retrieveriksi, hallitsette palautettavien dokumenttien määrää ja käytätte kontekstuaalista tiivistämistä epäolennaisen tekstin poistamiseen ennen sen välittämistä LLM:lle.

Oppitunti 4/413 vaihetta

Retrievert ja kontekstuaalinen tiivistäminen on ilmainen Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppitunti CoddyKitissä. Tämä on oppitunti 4/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 LangChainilla ja autonomiset työnkulut-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit LangChainilla ja autonomiset työnkulut-kurssilla on yhteensä 4 oppituntia.

Vektoritallennuksesta hakijaksi

Vektorivarasto osaa tehdä hakuja, mutta agentit käyttävät hakijaa (retriever) — ohutta rajapintaa, jolla on yksi tehtävä: palauttaa kyselyn perusteella olennaiset dokumentit.

Jokainen vektorivarasto tarjoaa as_retriever()-metodin sellaisen luomiseen.

retriever = vectorstore.as_retriever()
docs = retriever.invoke('How do I reset my password?')

k-arvon hallinta

k-parametri määrittää palautettavien dokumenttien määrän. Liian pieni arvo jättää kontekstia puuttumaan, kun taas liian suuri kuluttaa tokeneita ja lisää kohinaa.

retriever = vectorstore.as_retriever(
    search_kwargs={'k': 4}
)

Samankaltaisuuspisteiden kynnysarvot

Kiinteän lukumäärän sijaan voit palauttaa vain dokumentit, joiden relevanssipisteet ylittävät tietyn rajan. Näin mukaan ei pakoteta epäolennaisia tekstikatkelmia, kun sopivaa osumaa ei löydy.

retriever = vectorstore.as_retriever(
    search_type='similarity_score_threshold',
    search_kwargs={'score_threshold': 0.7}
)

Maksimaalinen marginaalinen relevanssi

MMR tasapainottaa relevanssia ja monipuolisuutta ja välttää lähes päällekkäiset tekstikatkelmat. Se on hyödyllinen, kun dokumenteissa toistetaan samankaltaista tekstiä.

retriever = vectorstore.as_retriever(
    search_type='mmr',
    search_kwargs={'k': 4, 'fetch_k': 20}
)

Metadatan suodatus

Dokumenteilla on metadataa (lähde, päivämäärä, luokka). Voit rajata haun tiettyyn osajoukkoon, esimerkiksi vain nykyiseen tuoteversioon.

retriever = vectorstore.as_retriever(
    search_kwargs={'filter': {'version': 'v2'}}
)

Kohinan ongelma

Olennaisetkin tekstikatkelmat sisältävät usein asiaan liittymättömiä lauseita. Kun tämä kohina lähetetään LLM:lle, vastaus vesittyy ja tokeneita kuluu.

Kontekstuaalinen tiivistäminen supistaa jokaisen haetun dokumentin vain kyselyn kannalta olennaisiin osiin.

ContextualCompressionRetriever

Tämä kääre sijoittuu perushaun eteen ja käsittelee sen tulokset jälkikäteen tiivistimen avulla.

from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import LLMChainExtractor

compressor = LLMChainExtractor.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
    base_compressor=compressor,
    base_retriever=retriever
)

Poiminnan toiminta

LLMChainExtractor pyytää LLM:ää poimimaan kustakin dokumentista vain kyselyn kannalta olennaiset lauseet ja hylkäämään muun sisällön ennen sen päätymistä lopulliseen kehotteeseen.

docs = compression_retriever.invoke(
    'What is the refund window?'
)

Edullisemmat suodattimet

LLM:llä tehtävä poiminta kuluttaa tokeneita. EmbeddingsFilter on nopeampi ja edullisempi vaihtoehto: se poistaa samankaltaisuuskynnyksen alle jäävät dokumentit pelkkien upotusten avulla — ylimääräistä LLM-kutsua ei tarvita.

from langchain.retrievers.document_compressors import EmbeddingsFilter

compressor = EmbeddingsFilter(
    embeddings=embeddings,
    similarity_threshold=0.76
)

Tiivistimien ketjuttaminen

Yhdistä vaiheet DocumentCompressorPipeline-putkessa: käytä ensin edullista upotussuodatinta ja sen jälkeen LLM-poimintaa jäljelle jääneisiin dokumentteihin. Näin laatu säilyy hyvänä ja kustannukset hallinnassa.

from langchain.retrievers.document_compressors import DocumentCompressorPipeline

pipeline = DocumentCompressorPipeline(
    transformers=[embeddings_filter, extractor]
)

Liittäminen RAG-putkeen

Koska tiivistävä hakija käyttää samaa rajapintaa kuin mikä tahansa hakija, voit vaihtaa sen RAG-ketjuun muuttamatta putken muuta osaa. Puhtaampi konteksti tuottaa yleensä parempia ja edullisempia vastauksia.

Pikatesti

Testaa tietosi hakijoista.

Kertaus

Opit säätämään ja tarkentamaan hakua:

  • Muunna varasto hakijaksi as_retriever()-metodilla ja säädä k-arvoa
  • Käytä pistekynnyksiä, MMR:ää ja metadatasuodattimia
  • Kontekstuaalinen tiivistäminen poistaa kohinatekstiä
  • EmbeddingsFilter on edullinen vaihtoehto LLM-poiminnalle
  • Ketjuta tiivistimiä laadun ja tehokkuuden parantamiseksi

Parempi haku on usein tärkein yksittäinen keino parantaa RAG:n laatua.

Aloita maksutta

Opi Tekoälyagentit LangChainilla ja autonomiset työnkulut 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
12
Oppitunnit
50

Usein kysytyt kysymykset

Onko oppitunti ”Retrievert ja kontekstuaalinen tiivistäminen” ilmainen?

Kyllä – oppitunnin ”Retrievert ja kontekstuaalinen tiivistäminen” 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 LangChainilla ja autonomiset työnkulut-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit LangChainilla ja autonomiset työnkulut-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Retrievert ja kontekstuaalinen tiivistäminen”?

Muutatte vektoritietokannan säädettäväksi retrieveriksi, hallitsette palautettavien dokumenttien määrää ja käytätte kontekstuaalista tiivistämistä epäolennaisen tekstin poistamiseen ennen sen välittä… Harjoittelet Tekoälyagentit LangChainilla ja autonomiset työnkulut-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit LangChainilla ja autonomiset työnkulut-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Retrievert ja kontekstuaalinen tiivistäminen”-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 LangChainilla ja autonomiset työnkulut-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit LangChainilla ja autonomiset työnkulut-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

  1. Dokumenttilataajien perusteet
  2. Tekstin jakajat ja upotukset
  3. Vektorivarastot tiedonhakuun
  4. Retrievert ja kontekstuaalinen tiivistäminen
← Takaisin: Tekoälyagentit LangChainilla ja autonomiset työnkulut