Skip to content

Commit d307d9e

Browse files
committed
remove bedrock invoke model unit tests since we are now using upstream extension
1 parent b2ba88e commit d307d9e

File tree

1 file changed

+1
-200
lines changed

1 file changed

+1
-200
lines changed

aws-opentelemetry-distro/tests/amazon/opentelemetry/distro/test_instrumentation_patch.py

Lines changed: 1 addition & 200 deletions
Original file line numberDiff line numberDiff line change
@@ -213,84 +213,9 @@ def _test_patched_botocore_instrumentation(self):
213213
bedrock_agent_runtime_sucess_attributes: Dict[str, str] = _do_on_success_bedrock("bedrock-agent-runtime")
214214
self.assertEqual(len(bedrock_agent_runtime_sucess_attributes), 0)
215215

216-
# BedrockRuntime - Amazon Titan
216+
# BedrockRuntime
217217
self.assertTrue("bedrock-runtime" in _KNOWN_EXTENSIONS)
218218

219-
self._test_patched_bedrock_runtime_invoke_model(
220-
model_id="amazon.titan-embed-text-v1",
221-
max_tokens=512,
222-
temperature=0.9,
223-
top_p=0.75,
224-
finish_reason="FINISH",
225-
input_tokens=123,
226-
output_tokens=456,
227-
)
228-
229-
self._test_patched_bedrock_runtime_invoke_model(
230-
model_id="amazon.nova-pro-v1:0",
231-
max_tokens=500,
232-
temperature=0.9,
233-
top_p=0.7,
234-
finish_reason="FINISH",
235-
input_tokens=123,
236-
output_tokens=456,
237-
)
238-
239-
# BedrockRuntime - Anthropic Claude
240-
self._test_patched_bedrock_runtime_invoke_model(
241-
model_id="anthropic.claude-v2:1",
242-
max_tokens=512,
243-
temperature=0.5,
244-
top_p=0.999,
245-
finish_reason="end_turn",
246-
input_tokens=23,
247-
output_tokens=36,
248-
)
249-
250-
# BedrockRuntime - Meta LLama
251-
self._test_patched_bedrock_runtime_invoke_model(
252-
model_id="meta.llama2-13b-chat-v1",
253-
max_tokens=512,
254-
temperature=0.5,
255-
top_p=0.9,
256-
finish_reason="stop",
257-
input_tokens=31,
258-
output_tokens=36,
259-
)
260-
261-
# BedrockRuntime - Cohere Command-r
262-
cohere_input = "Hello, world"
263-
cohere_output = "Goodbye, world"
264-
265-
self._test_patched_bedrock_runtime_invoke_model(
266-
model_id="cohere.command-r-v1:0",
267-
max_tokens=512,
268-
temperature=0.5,
269-
top_p=0.75,
270-
finish_reason="COMPLETE",
271-
input_tokens=math.ceil(len(cohere_input) / 6),
272-
output_tokens=math.ceil(len(cohere_output) / 6),
273-
input_prompt=cohere_input,
274-
output_prompt=cohere_output,
275-
)
276-
277-
# BedrockRuntime - Mistral
278-
msg = "Hello World"
279-
mistral_input = f"<s>[INST] {msg} [/INST]"
280-
mistral_output = "Goodbye, World"
281-
282-
self._test_patched_bedrock_runtime_invoke_model(
283-
model_id="mistral.mistral-7b-instruct-v0:2",
284-
max_tokens=512,
285-
temperature=0.5,
286-
top_p=0.9,
287-
finish_reason="stop",
288-
input_tokens=math.ceil(len(mistral_input) / 6),
289-
output_tokens=math.ceil(len(mistral_output) / 6),
290-
input_prompt=mistral_input,
291-
output_prompt=mistral_output,
292-
)
293-
294219
# SecretsManager
295220
self.assertTrue("secretsmanager" in _KNOWN_EXTENSIONS)
296221
secretsmanager_attributes: Dict[str, str] = _do_extract_secretsmanager_attributes()
@@ -374,130 +299,6 @@ def _test_patched_bedrock_instrumentation(self):
374299
self.assertEqual(len(bedrock_sucess_attributes), 1)
375300
self.assertEqual(bedrock_sucess_attributes["aws.bedrock.guardrail.id"], _BEDROCK_GUARDRAIL_ID)
376301

377-
def _test_patched_bedrock_runtime_invoke_model(self, **args):
378-
model_id = args.get("model_id", None)
379-
max_tokens = args.get("max_tokens", None)
380-
temperature = args.get("temperature", None)
381-
top_p = args.get("top_p", None)
382-
finish_reason = args.get("finish_reason", None)
383-
input_tokens = args.get("input_tokens", None)
384-
output_tokens = args.get("output_tokens", None)
385-
input_prompt = args.get("input_prompt", None)
386-
output_prompt = args.get("output_prompt", None)
387-
388-
def get_model_response_request():
389-
request_body = {}
390-
response_body = {}
391-
392-
if "amazon.titan" in model_id:
393-
request_body = {
394-
"textGenerationConfig": {
395-
"maxTokenCount": max_tokens,
396-
"temperature": temperature,
397-
"topP": top_p,
398-
}
399-
}
400-
401-
response_body = {
402-
"inputTextTokenCount": input_tokens,
403-
"results": [
404-
{
405-
"tokenCount": output_tokens,
406-
"outputText": "testing",
407-
"completionReason": finish_reason,
408-
}
409-
],
410-
}
411-
412-
if "amazon.nova" in model_id:
413-
request_body = {
414-
"inferenceConfig": {
415-
"max_new_tokens": max_tokens,
416-
"temperature": temperature,
417-
"topP": top_p,
418-
}
419-
}
420-
421-
response_body = {
422-
"output": {"message": {"content": [{"text": ""}], "role": "assistant"}},
423-
"stopReason": finish_reason,
424-
"usage": {"inputTokens": input_tokens, "outputTokens": output_tokens},
425-
}
426-
427-
if "anthropic.claude" in model_id:
428-
request_body = {
429-
"anthropic_version": "bedrock-2023-05-31",
430-
"max_tokens": max_tokens,
431-
"temperature": temperature,
432-
"top_p": top_p,
433-
}
434-
435-
response_body = {
436-
"stop_reason": finish_reason,
437-
"stop_sequence": None,
438-
"usage": {"input_tokens": input_tokens, "output_tokens": output_tokens},
439-
}
440-
441-
if "meta.llama" in model_id:
442-
request_body = {
443-
"max_gen_len": max_tokens,
444-
"temperature": temperature,
445-
"top_p": top_p,
446-
}
447-
448-
response_body = {
449-
"prompt_token_count": input_tokens,
450-
"generation_token_count": output_tokens,
451-
"stop_reason": finish_reason,
452-
}
453-
454-
if "cohere.command" in model_id:
455-
request_body = {
456-
"message": input_prompt,
457-
"max_tokens": max_tokens,
458-
"temperature": temperature,
459-
"p": top_p,
460-
}
461-
462-
response_body = {
463-
"text": output_prompt,
464-
"finish_reason": finish_reason,
465-
}
466-
467-
if "mistral" in model_id:
468-
request_body = {
469-
"prompt": input_prompt,
470-
"max_tokens": max_tokens,
471-
"temperature": temperature,
472-
"top_p": top_p,
473-
}
474-
475-
response_body = {"outputs": [{"text": output_prompt, "stop_reason": finish_reason}]}
476-
477-
json_bytes = json.dumps(response_body).encode("utf-8")
478-
479-
return json.dumps(request_body), StreamingBody(BytesIO(json_bytes), len(json_bytes))
480-
481-
request_body, response_body = get_model_response_request()
482-
483-
bedrock_runtime_attributes: Dict[str, str] = _do_extract_attributes_bedrock(
484-
"bedrock-runtime", operation="InvokeModel", model_id=model_id, request_body=request_body
485-
)
486-
bedrock_runtime_success_attributes: Dict[str, str] = _do_on_success_bedrock(
487-
"bedrock-runtime", operation="InvokeModel", model_id=model_id, streaming_body=response_body
488-
)
489-
490-
bedrock_runtime_attributes.update(bedrock_runtime_success_attributes)
491-
492-
self.assertEqual(bedrock_runtime_attributes["gen_ai.system"], _GEN_AI_SYSTEM)
493-
self.assertEqual(bedrock_runtime_attributes["gen_ai.request.model"], model_id)
494-
self.assertEqual(bedrock_runtime_attributes["gen_ai.request.max_tokens"], max_tokens)
495-
self.assertEqual(bedrock_runtime_attributes["gen_ai.request.temperature"], temperature)
496-
self.assertEqual(bedrock_runtime_attributes["gen_ai.request.top_p"], top_p)
497-
self.assertEqual(bedrock_runtime_attributes["gen_ai.usage.input_tokens"], input_tokens)
498-
self.assertEqual(bedrock_runtime_attributes["gen_ai.usage.output_tokens"], output_tokens)
499-
self.assertEqual(bedrock_runtime_attributes["gen_ai.response.finish_reasons"], [finish_reason])
500-
501302
def _test_patched_bedrock_agent_instrumentation(self):
502303
"""For bedrock-agent service, both extract_attributes and on_success provides attributes,
503304
the attributes depend on the API being invoked."""

0 commit comments

Comments
 (0)