Skip to content

Commit 264ea9d

Browse files
committed
implemented test_agents.py
1 parent 9ba62bc commit 264ea9d

File tree

1 file changed

+137
-0
lines changed
  • instrumentation-genai/opentelemetry-instrumentation-langchain/tests

1 file changed

+137
-0
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
import os
2+
from typing import Tuple
3+
4+
import pytest
5+
from langchain import hub
6+
from langchain_aws import ChatBedrock
7+
from langchain.agents import AgentExecutor, create_tool_calling_agent
8+
from langchain_community.tools import DuckDuckGoSearchResults
9+
10+
@pytest.mark.vcr
11+
def test_agents(instrument_legacy, span_exporter, log_exporter):
12+
search = DuckDuckGoSearchResults()
13+
tools = [search]
14+
model = ChatBedrock(
15+
model_id="anthropic.claude-3-5-sonnet-20240620-v1:0",
16+
region_name="us-west-2",
17+
temperature=0.9,
18+
max_tokens=2048,
19+
model_kwargs={
20+
"top_p": 0.9,
21+
},
22+
)
23+
24+
prompt = hub.pull(
25+
"hwchase17/openai-functions-agent",
26+
api_key=os.environ["LANGSMITH_API_KEY"],
27+
)
28+
29+
agent = create_tool_calling_agent(model, tools, prompt)
30+
agent_executor = AgentExecutor(agent=agent, tools=tools)
31+
32+
agent_executor.invoke({"input": "When was Amazon founded?"})
33+
34+
spans = span_exporter.get_finished_spans()
35+
36+
assert set([span.name for span in spans]) == {
37+
"chat anthropic.claude-3-5-sonnet-20240620-v1:0",
38+
"chain LLMChain",
39+
"chain AgentExecutor",
40+
"execute_tool search",
41+
"chain RunnableSequence",
42+
"chain ToolsAgentOutputParser",
43+
"chain ChatPromptTemplate",
44+
"chain RunnableAssign<agent_scratchpad>",
45+
"chain RunnableParallel<agent_scratchpad>",
46+
"chain RunnableLambda",
47+
"execute_tool duckduckgo_results_json",
48+
}
49+
50+
51+
@pytest.mark.vcr
52+
def test_agents_with_events_with_content(
53+
instrument_with_content, span_exporter, log_exporter
54+
):
55+
search = DuckDuckGoSearchResults()
56+
tools = [search]
57+
model = ChatBedrock(
58+
model_id="anthropic.claude-3-5-sonnet-20240620-v1:0",
59+
region_name="us-west-2",
60+
temperature=0.9,
61+
max_tokens=2048,
62+
model_kwargs={
63+
"top_p": 0.9,
64+
},
65+
)
66+
67+
68+
prompt = hub.pull(
69+
"hwchase17/openai-functions-agent",
70+
api_key=os.environ["LANGSMITH_API_KEY"],
71+
)
72+
73+
agent = create_tool_calling_agent(model, tools, prompt)
74+
agent_executor = AgentExecutor(agent=agent, tools=tools)
75+
76+
77+
prompt = "What is AWS?"
78+
response = agent_executor.invoke({"input": prompt})
79+
80+
spans = span_exporter.get_finished_spans()
81+
82+
assert set([span.name for span in spans]) == {
83+
"chat anthropic.claude-3-5-sonnet-20240620-v1:0",
84+
"chain LLMChain",
85+
"chain AgentExecutor",
86+
"execute_tool search",
87+
"chain RunnableSequence",
88+
"chain ToolsAgentOutputParser",
89+
"chain ChatPromptTemplate",
90+
"chain RunnableAssign<agent_scratchpad>",
91+
"chain RunnableParallel<agent_scratchpad>",
92+
"chain RunnableLambda",
93+
"execute_tool duckduckgo_results_json",
94+
}
95+
96+
97+
@pytest.mark.vcr
98+
def test_agents_with_events_with_no_content(
99+
instrument_with_no_content, span_exporter, log_exporter
100+
):
101+
search = DuckDuckGoSearchResults()
102+
tools = [search]
103+
model = ChatBedrock(
104+
model_id="anthropic.claude-3-5-sonnet-20240620-v1:0",
105+
region_name="us-west-2",
106+
temperature=0.9,
107+
max_tokens=2048,
108+
model_kwargs={
109+
"top_p": 0.9,
110+
},
111+
)
112+
113+
prompt = hub.pull(
114+
"hwchase17/openai-functions-agent",
115+
api_key=os.environ["LANGSMITH_API_KEY"],
116+
)
117+
118+
agent = create_tool_calling_agent(model, tools, prompt)
119+
agent_executor = AgentExecutor(agent=agent, tools=tools)
120+
121+
agent_executor.invoke({"input": "What is AWS?"})
122+
123+
spans = span_exporter.get_finished_spans()
124+
125+
assert set([span.name for span in spans]) == {
126+
"chat anthropic.claude-3-5-sonnet-20240620-v1:0",
127+
"chain LLMChain",
128+
"chain AgentExecutor",
129+
"execute_tool search",
130+
"chain RunnableSequence",
131+
"chain ToolsAgentOutputParser",
132+
"chain ChatPromptTemplate",
133+
"chain RunnableAssign<agent_scratchpad>",
134+
"chain RunnableParallel<agent_scratchpad>",
135+
"chain RunnableLambda",
136+
"execute_tool duckduckgo_results_json",
137+
}

0 commit comments

Comments
 (0)