Как получить user_id из метаданных LangGraph?Python

Программы на Python
Ответить
Anonymous
 Как получить user_id из метаданных LangGraph?

Сообщение Anonymous »

🧩 Короче говоря, как получить user_id во время выполнения графа?

LangGraph представил класс Runtime (начиная с версии 0.6.0) вместо RunnableConfig:
🔗 https://github.com/langchain-ai/langgra ... /tag/0.6.0
Каков правильный способ доступа к user_id (и другим метаданным) из среды выполнения внутри графа или промежуточного программного обеспечения?
Пример ниже адаптирован из документации версии 1.0.0+:
🔗 https://docs.langchain.com/oss/python/langchain/runtime

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

from dataclasses import dataclass

from langchain.agents import create_agent, AgentState
from langchain.agents.middleware import after_model
from langgraph.runtime import Runtime

@dataclass
class Context:
user_id: str
thread_id: str

@after_model
def log_after_model(state: AgentState, runtime: Runtime[Context]) -> dict | None:
print(f"Completed request for user: {runtime.context.user_id}")
return None

agent = create_agent(
model="deepseek-chat",
tools=[],
middleware=[log_after_model],
context_schema=Context,
)
Запуск графика с помощью langgraph dev (API v1.0.1) и вызов агента через SDK (вместо вызова) приводит к следующей ошибке:

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

Context.__init__() missing 2 required positional arguments: 'user_id' and 'thread_id'"
До версии 0.6.0 к этому можно было получить доступ через RunnableConfig, но в новой документации нет четкого примера того, как это сделать через Runtime.
В LangSmith и user_id, и thread_id отображаются в разделе «Метаданные», поэтому они явно существуют в контексте среды выполнения, но неясно, как их получить. программно.
Вот скриншот LangSmith для справки:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/797 ... h-metadata
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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