Sobes.tech
Middle — Senior

Ako skombinovať RAG s používaním nástrojov a volaním funkcií?

sobes.tech AI

Odpoveď od AI

RAG (Retrieval-Augmented Generation) sa efektom se može učinkovito integrirati korištenjem alata (tool use) i pozivanjem funkcija (function calling) za stvaranje moćnijih i kontekstualno svjesnijih sustava.

Ideja je:

  1. RAG je odgovoran za pretraživanje i izvlačenje relevantnih informacija iz vanjskih izvora (baze znanja, dokumenti).
  2. Korištenje alata — to je korištenje vanjskih alata ili API-ja koji mogu izvršavati specifične zadatke (npr. kalkulator, baza podataka, servisi).
  3. Pozivanje funkcija — mehanizam koji omogućava LLM-ovima da pozivaju unaprijed definirane funkcije s parametrima, kako bi dobili strukturirani odgovor ili izvršili radnju.

Kako kombinirati:

  • Prvo, RAG izvlači relevantne podatke, koji se zatim prosljeđuju LLM-u.
  • LLM analizira zahtjev i kontekst, i ako je potrebno, poziva funkciju (function calling) za izvršenje specifičnog zadatka ili pristup alatu.
  • Alat izvršava zadatak i vraća rezultat natrag LLM-u.
  • LLM generira konačni odgovor koristeći i izvlačene podatke i rezultate poziva funkcija.

Primjer: chatbot koji odgovara na pitanja koristeći bazu znanja (RAG), i po potrebi poziva kalkulator (tool) putem funkcije calculate(expression).

# Pseudokod
retrieved_docs = rag_retrieve(query)
response = llm.generate(
    prompt=query + retrieved_docs,
    function_call='calculate' ako needs_calculation(query) inače None
)
if response.function_call:
    result = calculate(response.function_call.arguments['expression'])
    final_answer = llm.generate(prompt=f"Rezultat računanja: {result}")
else:
    final_answer = response.text

Na ovaj način, RAG osigurava kontekst, korištenje alata proširuje mogućnosti, a pozivanje funkcija strukturira interakciju između LLM i vanjskih servisa.