31 lines
1.2 KiB
Markdown
31 lines
1.2 KiB
Markdown
# FAQ: LangChain
|
|
|
|
## Как создать инструмент (tool)?
|
|
Используй декоратор @tool:
|
|
```python
|
|
from langchain.tools import tool
|
|
|
|
@tool
|
|
def my_tool(query: str) -> str:
|
|
"""Описание инструмента для LLM."""
|
|
return f"Result: {query}"
|
|
```
|
|
|
|
## Что такое цепочка (chain)?
|
|
Chain — последовательность компонентов: prompt | llm | output_parser.
|
|
Каждый компонент принимает вход и передает выход следующему.
|
|
|
|
## Как работает ReAct агент?
|
|
ReAct (Reasoning + Acting) — агент чередует рассуждения и действия.
|
|
Цикл: думает → выбирает tool → получает результат → думает снова → финальный ответ.
|
|
|
|
## Как создать векторное хранилище ChromaDB?
|
|
```python
|
|
from langchain_chroma import Chroma
|
|
from langchain_ollama import OllamaEmbeddings
|
|
|
|
embeddings = OllamaEmbeddings(model="nomic-embed-text")
|
|
store = Chroma(embedding_function=embeddings, persist_directory="./chroma_db")
|
|
store.add_documents(documents)
|
|
```
|