import os
import logfire
from openai import OpenAI
logfire.configure()
client = OpenAI(
base_url=os.getenv("INFERENCE_URL") + "/v1",
api_key=os.getenv("INFERENCE_KEY")
)
logfire.instrument_openai(client)
def analyze_text(text: str) -> dict:
with logfire.span("text_analysis"):
# First call: summarize
with logfire.span("summarization"):
summary_response = client.chat.completions.create(
model=os.getenv("INFERENCE_MODEL_ID"),
messages=[
{"role": "system", "content": "Summarize the following text in one sentence."},
{"role": "user", "content": text}
]
)
summary = summary_response.choices[0].message.content
# Second call: extract keywords
with logfire.span("keyword_extraction"):
keywords_response = client.chat.completions.create(
model=os.getenv("INFERENCE_MODEL_ID"),
messages=[
{"role": "system", "content": "Extract 3-5 keywords from the text. Return only the keywords, comma-separated."},
{"role": "user", "content": text}
]
)
keywords = keywords_response.choices[0].message.content
return {"summary": summary, "keywords": keywords}
result = analyze_text("Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps.")
print(result)