test_using_custom_config_specs() — langchain Function Reference
Architecture documentation for the test_using_custom_config_specs() function in test_history.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 81268290_ca85_cda8_33d1_43840241ac42["test_using_custom_config_specs()"] 0af0dfde_fe33_f3e5_b5e6_a3d18260dc67["test_history.py"] 81268290_ca85_cda8_33d1_43840241ac42 -->|defined in| 0af0dfde_fe33_f3e5_b5e6_a3d18260dc67 style 81268290_ca85_cda8_33d1_43840241ac42 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/tests/unit_tests/runnables/test_history.py lines 554–664
def test_using_custom_config_specs() -> None:
"""Test that we can configure which keys should be passed to the session factory."""
def _fake_llm(params: dict[str, Any]) -> list[BaseMessage]:
messages = params["messages"]
return [
AIMessage(
content="you said: "
+ "\n".join(
str(m.content) for m in messages if isinstance(m, HumanMessage)
)
)
]
runnable = RunnableLambda(_fake_llm)
store = {}
def get_session_history(
user_id: str, conversation_id: str
) -> InMemoryChatMessageHistory:
if (user_id, conversation_id) not in store:
store[user_id, conversation_id] = InMemoryChatMessageHistory()
return store[user_id, conversation_id]
with_message_history = RunnableWithMessageHistory(
runnable,
get_session_history=get_session_history,
input_messages_key="messages",
history_messages_key="history",
history_factory_config=[
ConfigurableFieldSpec(
id="user_id",
annotation=str,
name="User ID",
description="Unique identifier for the user.",
default="",
is_shared=True,
),
ConfigurableFieldSpec(
id="conversation_id",
annotation=str,
name="Conversation ID",
description="Unique identifier for the conversation.",
default=None,
is_shared=True,
),
],
)
result = with_message_history.invoke(
{
"messages": [HumanMessage(content="hello")],
},
{"configurable": {"user_id": "user1", "conversation_id": "1"}},
)
assert result == [
AIMessage(content="you said: hello"),
]
assert store == {
("user1", "1"): InMemoryChatMessageHistory(
messages=[
HumanMessage(content="hello"),
AIMessage(content="you said: hello"),
]
)
}
result = with_message_history.invoke(
{
"messages": [HumanMessage(content="goodbye")],
},
{"configurable": {"user_id": "user1", "conversation_id": "1"}},
)
assert result == [
AIMessage(content="you said: goodbye"),
]
assert store == {
("user1", "1"): InMemoryChatMessageHistory(
messages=[
HumanMessage(content="hello"),
AIMessage(content="you said: hello"),
HumanMessage(content="goodbye"),
Domain
Subdomains
Source
Frequently Asked Questions
What does test_using_custom_config_specs() do?
test_using_custom_config_specs() is a function in the langchain codebase, defined in libs/core/tests/unit_tests/runnables/test_history.py.
Where is test_using_custom_config_specs() defined?
test_using_custom_config_specs() is defined in libs/core/tests/unit_tests/runnables/test_history.py at line 554.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free