blob: 63daaa67a588512fd53bb033b8556e145ee06616 [file] [log] [blame]
# hamilton_invoke.py
from typing import List
import openai
def llm_client() -> openai.OpenAI:
return openai.OpenAI()
def joke_prompt(topic: str) -> str:
return f"Tell me a short joke about {topic}"
def joke_messages(joke_prompt: str) -> List[dict]:
return [{"role": "user", "content": joke_prompt}]
def joke_response(llm_client: openai.OpenAI, joke_messages: List[dict]) -> str:
response = llm_client.chat.completions.create(
model="gpt-3.5-turbo",
messages=joke_messages,
)
return response.choices[0].message.content
if __name__ == "__main__":
import hamilton_invoke
from hamilton import driver
dr = driver.Builder().with_modules(hamilton_invoke).build()
dr.display_all_functions("hamilton-invoke.png")
print(dr.execute(["joke_response"], inputs={"topic": "ice cream"}))