Обновить solutions/6a02e23da6fe2e4ac16acf65_Агент_с_RAG_памятью/rag_agent.py

This commit is contained in:
2026-05-27 07:02:40 +00:00
parent a7c4e53bff
commit d0f750b21e
@@ -1,4 +1,4 @@
<|channel|>final code<|message|>import os import os
from pathlib import Path from pathlib import Path
from typing import List from typing import List
@@ -8,6 +8,7 @@ from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain.tools import tool from langchain.tools import tool
from langchain.agents import create_agent, AgentExecutor from langchain.agents import create_agent, AgentExecutor
from langchain.schema import Document from langchain.schema import Document
from rag_tools import search_knowledge_base, add_to_knowledge_base
# --------------------------------------------------------------------------- # # --------------------------------------------------------------------------- #
# 1. Векторное хранилище на базе Qdrant # 1. Векторное хранилище на базе Qdrant
@@ -86,27 +87,26 @@ def add_to_knowledge_base(content: str, title: str) -> str:
# 4. Создание агента # 4. Создание агента
# --------------------------------------------------------------------------- # # --------------------------------------------------------------------------- #
llm = OllamaLLM(model="llama3") LLM_MODEL = "llama3"
llm = OllamaLLM(model=LLM_MODEL)
agent_executor: AgentExecutor tools = [search_knowledge_base, add_to_knowledge_base]
def init_agent() -> None: prompt = PromptTemplate.from_template(
""" "Вы — интеллектуальный агент с доступом к базе знаний.\n"
Инициализирует агент с системным промптом, указывающим использовать RAG. "Используйте инструменты 'search_knowledge_base' и 'add_to_knowledge_base' при необходимости.\n\n"
""" "Доступные инструменты:\n{tools}\n\n"
global agent_executor "Формат ответа:\n"
system_prompt = ( "Question: {input}\n"
"Ты AI-ассистент. При необходимости ищи информацию в базе знаний " "Thought: {agent_scratchpad}\n"
"с помощью инструмента search_knowledge_base и добавляй новые данные " "Action: действие из [{tool_names}]\n"
"через add_to_knowledge_base." "Action Input: входные данные\n"
) "Observation: результат\n"
tools = [search_knowledge_base, add_to_knowledge_base] "Final Answer: итоговый ответ"
agent_executor = create_agent( )
llm=llm,
tools=tools, agent = create_react_agent(llm=llm, tools=tools, prompt=prompt)
system_prompt=system_prompt, agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
verbose=True
)
# --------------------------------------------------------------------------- # # --------------------------------------------------------------------------- #
# 5. Инициализация из директории (для загрузки файлов) # 5. Инициализация из директории (для загрузки файлов)