DatadogLLM / llm_observable_anything.py
Severian's picture
Upload 3 files
5fa7d9f verified
raw
history blame
2 kB
import os
import requests
import json
from ddtrace import patch_all
from ddtrace.opentelemetry import TracerProvider, trace
from opentelemetry import trace as ot_trace
# Initialize Datadog tracing
patch_all()
provider = TracerProvider()
ot_trace.set_tracer_provider(provider)
tracer = ot_trace.get_tracer(__name__)
# Set up environment variables
os.environ['DD_LLMOBS_ENABLED'] = '1'
os.environ['DD_LLMOBS_ML_APP'] = 'anything-api'
os.environ['DD_LLMOBS_AGENTLESS_ENABLED'] = '1'
# Ensure DD_API_KEY and DD_SITE are set in your environment variables
@trace
def send_message(message):
url = 'https://severian-anything.hf.space/api/v1/workspace/Scoreboard/chat'
headers = {
'accept': 'application/json',
'Authorization': 'Bearer TYQYM46-RPCMQ98-GCGJMNB-Q23K6HC',
'Content-Type': 'application/json'
}
data = {
"message": message,
"mode": "query"
}
data_json = json.dumps(data)
with tracer.start_as_current_span("llm_api_call") as span:
span.set_attribute("llm.request.model", "anything-api")
span.set_attribute("llm.request.input", message)
try:
response = requests.post(url, headers=headers, data=data_json)
response_data = response.json()
bot_response = response_data.get("textResponse")
span.set_attribute("llm.response.output", bot_response)
if bot_response:
print(f"Bot: {bot_response}")
new_message = input("You: ")
return new_message
except requests.RequestException as e:
span.record_exception(e)
print(f"Request failed: {e}")
return None
except Exception as e:
span.record_exception(e)
print(f"An error occurred: {e}")
return None
if __name__ == "__main__":
message = input("You: ")
while message.lower() != "exit":
message = send_message(message)
print("Chat ended.")