Skip to main content
Glama

@arizeai/phoenix-mcp

Official
by Arize-ai
PythonSessionsGuide.tsx3.13 kB
import { ExternalLink, Heading, Text, View } from "@phoenix/components"; import { CodeWrap, PythonBlockWithCopy } from "@phoenix/components/code"; const INSTALL_OPENINFERENCE_INSTRUMENTATION_PYTHON = `pip install openinference-instrumentation`; const ADD_SESSION_ID_PYTHON = `import uuid import openai from openinference.instrumentation import using_session from openinference.semconv.trace import SpanAttributes from opentelemetry import trace client = openai.Client() session_id = str(uuid.uuid4()) tracer = trace.get_tracer(__name__) @tracer.start_as_current_span(name="agent", attributes={SpanAttributes.OPENINFERENCE_SPAN_KIND: "agent"}) def assistant( messages: list[dict], session_id: str = str, ): current_span = trace.get_current_span() current_span.set_attribute(SpanAttributes.SESSION_ID, session_id) current_span.set_attribute(SpanAttributes.INPUT_VALUE, messages[-1].get('content')) # Propagate the session_id down to spans crated by the OpenAI instrumentation # This is not strictly necessary, but it helps to correlate the spans to the same session with using_session(session_id): response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[{"role": "system", "content": "You are a helpful assistant."}] + messages, ).choices[0].message current_span.set_attribute(SpanAttributes.OUTPUT_VALUE, response.content) return response messages = [ {"role": "user", "content": "hi! im bob"} ] response = assistant( messages, session_id=session_id, ) messages = messages + [ response, {"role": "user", "content": "what's my name?"} ] response = assistant( messages, session_id=session_id, )`; export function PythonSessionsGuide() { return ( <div> <View paddingTop="size-200" paddingBottom="size-100"> <Heading level={2} weight="heavy"> Install Dependencies </Heading> </View> <View paddingBottom="size-100"> <Text> Sessions are tracked via the OpenTelemetry attribute <b>session.id</b> . The easiest way to get started with sessions is to use the OpenInference instrumentation package. </Text> </View> <CodeWrap> <PythonBlockWithCopy value={INSTALL_OPENINFERENCE_INSTRUMENTATION_PYTHON} /> </CodeWrap> <View paddingTop="size-200" paddingBottom="size-100"> <Heading level={2} weight="heavy"> Add Session ID to your Traces </Heading> </View> <View paddingBottom="size-100"> <Text> Below is an example of how to add session IDs to a simple OpenAI application. </Text> </View> <CodeWrap> <PythonBlockWithCopy value={ADD_SESSION_ID_PYTHON} /> </CodeWrap> <View paddingBottom="size-100" paddingTop="size-100"> <Text> For more information on how to use sessions, consult the{" "} <ExternalLink href="https://arize.com/docs/phoenix/tracing/how-to-tracing/setup-sessions"> documentation </ExternalLink> </Text> </View> </div> ); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Arize-ai/phoenix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server