Sobes.tech
Middle — Senior

Ինչպես համատեղել RAG-ը գործիքների օգտագործման և ֆունկցիայի կանչի հետ։

sobes.tech AI

Պատասխան AI-ից

RAG (Retrieval-Augmented Generation) արդյունավետորեն ինտեգրվող է գործիքների (tool use) և ֆունկցիայի կանչերի (function calling) օգտագործմամբ՝ ավելի հզոր և կոնտեքստային գիտակցող համակարգեր ստեղծելու համար:

Իդեայի հիմնական գաղափարը՝

  1. RAG պատասխանատու է արտաքին աղբյուրներից (գիտելիքների բազաներ, փաստաթղթեր) համապատասխան տեղեկատվության որոնման և հանման համար:
  2. Գործիքների օգտագործում — դա արտաքին գործիքների կամ API-ների օգտագործումն է, որոնք կարող են կատարել հատուկ առաջադրանքներ (օրինակ՝ հաշվիչ, տվյալների բազա, ծառայություններ):
  3. Ֆունկցիայի կանչում — մեխանիզմ, որը թույլ է տալիս LLM-ներին կանչել նախապես սահմանված ֆունկցիաներ՝ պարամետրերով՝ ստանալու կառուցվածքային պատասխան կամ կատարելու գործողություն:

Ինչպես համատեղել՝

  • Նախ, RAG-ը հանում է համապատասխան տվյալները, որոնք հետո փոխանցվում են LLM-ին:
  • LLM-ը վերլուծում է հարցը և կոնտեքստը, և անհրաժեշտության դեպքում կանչում է ֆունկցիա (function calling)՝ կոնկրետ առաջադրանքը կատարելու կամ գործիքին հասնելու համար:
  • Գործիքը կատարում է առաջադրանքը և վերադարձնում արդյունքը՝ LLM-ին:
  • LLM-ը ստեղծում է վերջնական պատասխան՝ օգտագործելով թե հանված տվյալները, թե ֆունկցիայի կանչի արդյունքները:

Օրինակ՝ մի չաթբոտ, որը պատասխանատու է հարցերին՝ օգտագործելով գիտելիքների բազան (RAG), և անհրաժեշտության դեպքում կանչում է հաշվիչ (tool)՝ calculate(expression) ֆունկցիայի միջոցով:

# Պսևդոկոդ
retrieved_docs = rag_retrieve(query)
response = llm.generate(
    prompt=query + retrieved_docs,
    function_call='calculate' եթե needs_calculation(query) այլապես None
)
if response.function_call:
    result = calculate(response.function_call.arguments['expression'])
    final_answer = llm.generate(prompt=f"Հաշվարկի արդյունքը՝ {result}")
else:
    final_answer = response.text

Այսպիսով՝ RAG-ը ապահովում է կոնտեքստը, tool use-ը ընդլայնում է հնարավորությունները, իսկ function calling-ը կառուցում է փոխազդեցությունը LLM և արտաքին ծառայությունների միջև։