-
Notifications
You must be signed in to change notification settings - Fork 257
Expand file tree
/
Copy pathprompt_engineering.py
More file actions
52 lines (42 loc) · 1.48 KB
/
prompt_engineering.py
File metadata and controls
52 lines (42 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import os
import azure.identity
import openai
from dotenv import load_dotenv
# Setup the OpenAI client to use either Azure, OpenAI.com, or Ollama API
load_dotenv(override=True)
API_HOST = os.getenv("API_HOST", "azure")
if API_HOST == "azure":
token_provider = azure.identity.get_bearer_token_provider(
azure.identity.DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = openai.OpenAI(
base_url=f"{os.environ['AZURE_OPENAI_ENDPOINT'].rstrip('/')}/openai/v1/",
api_key=token_provider,
)
MODEL_NAME = os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT"]
elif API_HOST == "ollama":
client = openai.OpenAI(base_url=os.environ["OLLAMA_ENDPOINT"], api_key="nokeyneeded")
MODEL_NAME = os.environ["OLLAMA_MODEL"]
else:
client = openai.OpenAI(api_key=os.environ["OPENAI_KEY"])
MODEL_NAME = os.environ["OPENAI_MODEL"]
SYSTEM_MESSAGE = """
I want you to act like Yoda from Star Wars.
I want you to respond and answer like Yoda using the tone, manner and vocabulary that Yoda would use.
Do not write any explanations. Only answer like Yoda.
You must know all of the knowledge of Yoda, and nothing more.
"""
USER_MESSAGE = """
What is an LLM?
"""
response = client.responses.create(
model=MODEL_NAME,
temperature=0.7,
input=[
{"role": "system", "content": SYSTEM_MESSAGE},
{"role": "user", "content": USER_MESSAGE},
],
store=False,
)
print(f"Response from {API_HOST}: \n")
print(response.output_text)