File size: 1,592 Bytes
b8989d2 2c3dd0c 0af3e10 2c3dd0c 0af3e10 2c3dd0c 0af3e10 2c3dd0c 0af3e10 2c3dd0c 0af3e10 2c3dd0c 0af3e10 2c3dd0c 0af3e10 2c3dd0c 0af3e10 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# agents/tools/llm.py
import json
import requests
from tools.context_builder import build_prompt
LLM_ENDPOINT = "http://localhost:1234/v1/chat/completions"
DEFAULT_MODEL = "gpt-4-llmstudio"
def call_llm(context_blocks, user_message, model=DEFAULT_MODEL, temperature=0.7, max_tokens=2048):
"""
Вызывает LLM, передавая подготовленный системный и пользовательский промпт.
Возвращает только текст ответа.
"""
messages = build_prompt(context_blocks, user_message)
payload = {
"model": model,
"messages": messages,
"temperature": temperature,
"max_tokens": max_tokens,
}
try:
response = requests.post(LLM_ENDPOINT, json=payload)
response.raise_for_status()
data = response.json()
return data["choices"][0]["message"]["content"].strip()
except Exception as e:
return f"[LLM ERROR] {e}"
def get_raw_response(context_blocks, user_message, model=DEFAULT_MODEL, temperature=0.7, max_tokens=2048):
"""
Возвращает полный JSON-ответ LLM (для дебага).
"""
messages = build_prompt(context_blocks, user_message)
payload = {
"model": model,
"messages": messages,
"temperature": temperature,
"max_tokens": max_tokens,
}
try:
response = requests.post(LLM_ENDPOINT, json=payload)
response.raise_for_status()
return response.json()
except Exception as e:
return {"error": str(e)}
|