promptflow
41 строка · 1.0 Кб
1from pathlib import Path2from typing import TypedDict3
4from jinja2 import Template5from llm import my_llm_tool6
7from promptflow.tracing import trace8
9BASE_DIR = Path(__file__).absolute().parent10
11
12class Result(TypedDict):13output: str14
15
16@trace
17def load_prompt(jinja2_template: str, text: str) -> str:18"""Load prompt function."""19with open(BASE_DIR / jinja2_template, "r", encoding="utf-8") as f:20prompt = Template(21f.read(), trim_blocks=True, keep_trailing_newline=True22).render(text=text)23return prompt24
25
26@trace
27def write_simple_program(28text: str = "Hello World!", deployment_name="gpt-35-turbo"29) -> Result:30"""Ask LLM to write a simple program."""31prompt = load_prompt("hello.jinja2", text)32output = my_llm_tool(prompt=prompt, deployment_name=deployment_name, max_tokens=120)33return Result(output=output)34
35
36if __name__ == "__main__":37from promptflow.tracing import start_trace38
39start_trace()40result = write_simple_program("Hello, world!", "gpt-35-turbo")41print(result)42