AWS BEDROCK AGENT — проблема с параметрами SessionAttributesPython

Программы на Python
Anonymous
AWS BEDROCK AGENT — проблема с параметрами SessionAttributes

Сообщение Anonymous »

Я создаю персонализированного чат-бота с помощью AWS Bedrock Agent и следую этой документации, чтобы сообщить ему предыдущую информацию при начале нового разговора через InvokeAgent API:
https:// docs.aws.amazon.com/pt_br/bedrock/latest/userguide/agents-session-state.html
Поэтому я хочу, чтобы, когда пользователь собирается поговорить с LLM (используя Сонет Клода 3.5 здесь), в его первом запросе я передаю sessionState с параметрами sessionAttributes в вызове. В атрибутах sessionAttributes я отправляю имя пользователя, возраст и предыдущие разговоры, которые он имел, чтобы LLM мог «знать» пользователя до того, как сгенерировать первый ответ, на основе прошлых взаимодействий и информации из базы данных
Затем я написал этот скрипт:

Код: Выделить всё

import uuid
import boto3

def invoke_agent(agent_id, agent_alias_id, session_id, prompt):
"""
Sends a prompt for the agent to process and respond to,
using both sessionAttributes and promptSessionAttributes.
"""

try:
# Define session attributes to maintain user-specific context across interactions
response = agents_runtime_client.invoke_agent(
agentId=agent_id,
agentAliasId=agent_alias_id,
sessionId=session_id,
sessionState={
'sessionAttributes': {
'userName': 'Yoran', # {user.name}
'userAge': '21',     # {year(today - user.birthdate)}
'summary': 'The user has talked a lot about Programming Languages like Python and Javascript' # {user.summary_conversation}
},
},
inputText=f"{prompt}", ## user_message,
enableTrace=False,
)

completion = ""
for event in response.get("completion"):
chunk = event["chunk"]
completion += chunk["bytes"].decode()

except Exception as e:
print(f"Couldn't invoke agent. {str(e)}")
raise

return completion

# Define the chat parameters
agent_alias_id = "XXXXXXXX"
agent_id = "XXXXXXXX"
session_id = str(uuid.uuid4())
input_text = "What is my name??"

# Invoke the agent with sessionAttributes and promptSessionAttributes
response = invoke_agent(agent_id, agent_alias_id, session_id, input_text)
print(response)
Поэтому я передаю имя пользователя в качестве параметра атрибутов сеанса, но когда я запрашиваю свое имя при первом вызове API, LLM возвращает:

Код: Выделить всё

I'm sorry, but I don't have your name in my records. Would you like to tell me your name?
Я использую это неправильно? Прочитав всю документацию, я подумал, что это лучший способ предоставить LLM память, но я просто не могу получить то, что ожидаю.
Я попробовал использовать параметры, представленные в документации AWS Bedrock, для предоставления LLM - это окно памяти контекста/долгосрочного контекста.
Я ожидал, что LLM сможет читать свои атрибуты сеанса.

Подробнее здесь: https://stackoverflow.com/questions/790 ... parameters

Вернуться в «Python»