How to Retrieve Phoenix Trace Links in Your Code Implementation
Hi, RunLLM How to get the phoenix trace link for my below code ?
# managing tracer objects in cache
session = px.launch_app(use_temp_dir=False)
tracers = {}
@extend_schema(
tags=['Main'],
operation_id='query',
summary='Chained Query',
description='API for Changed Queries',
parameters=[
OpenApiParameter(name='app_id', description='App ID', required=True, type=OpenApiTypes.UUID,
location=OpenApiParameter.PATH),
OpenApiParameter(name='thread_id', description='Thread ID', required=True, type=OpenApiTypes.UUID,
location=OpenApiParameter.PATH),
],
responses={200: OpenApiResponse(description='Success')}
)
@api_view(['POST'])
def query(request, app_id, thread_id):
if thread_id not in tracers.keys():
tracer = tracing.setup_tracing(thread_id)
tracers[thread_id] = tracer
else:
tracer = tracers[thread_id]
logging.info("New conversation started for app id : %s holding the thread id : %s", app_id, thread_id)
if request.method == 'POST':
# receiving json payload
payload = request.data
query = payload['query']
type = payload['type']
image_file_path = ""
# handle language
language = True
if 'language' in payload:
language_str = payload['language']
if language_str == 'true':
language = True
elif language_str == 'false':
language = False
# handle voice
voice = False
if 'voice' in payload:
voice = eval(payload['voice'].capitalize())
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True,
input_key="question", output_key="answer")
# Answer Generation
with tracer.start_as_current_span(name="completions") as span:
try:
span.set_attribute("input.value", f"Query : {query}, Language : {str(language)}")
if type == 'Agent':
span.set_attribute("openinference.span.kind", "AGENT")
answer, current_memory = conversational_agent.get_result(
query, language, voice, memory, app_id, thread_id, tracer)
elif type == 'Chain':
span.set_attribute("openinference.span.kind", "CHAIN")
answer, current_memory = conversational_chain.get_result(
query, language, voice, image_file_path, memory, app_id, thread_id, tracer)
span.set_status(Status(StatusCode.OK))
span.set_attribute("output.value", answer["answer"])
return Response(answer, status=status.HTTP_200_OK)
except Exception as e:
logging.info("Exception occured while trying to call get result method : %s", e)
answer = {
"answer": "Query overload in LLM. Please try again shortly",
"type": "doc",
"documents": ['']
}
span.set_status(Status(StatusCode.ERROR))
return Response(answer, status=status.HTTP_200_OK)