blob: 51e5e284ecc6a2df3877061b65f899b8d10f6ed2 [file]
import openai
def llm_client() -> openai.OpenAI:
return openai.OpenAI()
def universal_truth(llm_client: openai.OpenAI) -> str:
response = llm_client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a benevolent all-knowning being"},
{"role": "user", "content": "Please center my HTML <div> tag"},
],
)
return str(response.choices[0].message.content)
if __name__ == "__main__":
import __main__ # noqa: I001
from hamilton import driver
from hamilton.plugins import h_opentelemetry
# We're using Traceloop because it can be conveniently set up in 2 lines of code
# import the `Traceloop` object and initialize it
from traceloop.sdk import Traceloop
Traceloop.init()
# If you wanted to use another OpenTelemetry destination such as the open-source Jaeger,
# setup the container locally and use the following code
# from opentelemetry import trace
# from opentelemetry.sdk.trace import TracerProvider
# from opentelemetry.sdk.trace.export import SimpleSpanProcessor
# from opentelemetry.exporter.jaeger import JaegerExporter
# jaeger_exporter = JaegerExporter(agent_host_name='localhost', agent_port=5775)
# span_processor = SimpleSpanProcessor(jaeger_exporter)
# provider = TracerProvider(active_span_processor=span_processor)
# trace.set_tracer_provider(provider)
dr = (
driver.Builder()
.with_modules(__main__)
.with_adapters(h_opentelemetry.OpenTelemetryTracer())
.build()
)
results = dr.execute(["universal_truth"])
print(results["universal_truth"])