chore: import upstream snapshot with attribution
tools_continuous_delivery / Private PyPI non-main branch release (push) Has been skipped
tools_continuous_delivery / Private PyPI main branch release (push) Failing after 2m42s
Publish Promptflow Doc / Build (push) Has been cancelled
Publish Promptflow Doc / Deploy (push) Has been cancelled
Flake8 Lint / flake8 (push) Has been cancelled
Spell check CI / Spell_Check (push) Has been cancelled
tools_continuous_delivery / Private PyPI non-main branch release (push) Has been skipped
tools_continuous_delivery / Private PyPI main branch release (push) Failing after 2m42s
Publish Promptflow Doc / Build (push) Has been cancelled
Publish Promptflow Doc / Deploy (push) Has been cancelled
Flake8 Lint / flake8 (push) Has been cancelled
Spell check CI / Spell_Check (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
|
||||
from dotenv import load_dotenv
|
||||
from openai.version import VERSION as OPENAI_VERSION
|
||||
|
||||
from promptflow.tracing import trace
|
||||
|
||||
|
||||
def get_client():
|
||||
if OPENAI_VERSION.startswith("0."):
|
||||
raise Exception(
|
||||
"Please upgrade your OpenAI package to version >= 1.0.0 or using the command: pip install --upgrade openai."
|
||||
)
|
||||
api_key = os.environ.get("OPENAI_API_KEY", None)
|
||||
if api_key:
|
||||
from openai import OpenAI
|
||||
|
||||
return OpenAI()
|
||||
else:
|
||||
from openai import AzureOpenAI
|
||||
|
||||
return AzureOpenAI(
|
||||
api_version=os.environ.get("OPENAI_API_VERSION", "2023-07-01-preview")
|
||||
)
|
||||
|
||||
|
||||
@trace
|
||||
def my_llm_tool(
|
||||
prompt: str,
|
||||
# for AOAI, deployment name is customized by user, not model name.
|
||||
deployment_name: str,
|
||||
max_tokens: int = 120,
|
||||
temperature: float = 1.0,
|
||||
top_p: float = 1.0,
|
||||
n: int = 1,
|
||||
) -> str:
|
||||
if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ:
|
||||
# load environment variables from .env file
|
||||
load_dotenv()
|
||||
|
||||
if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ:
|
||||
raise Exception(
|
||||
"Please specify environment variables: OPENAI_API_KEY or AZURE_OPENAI_API_KEY"
|
||||
)
|
||||
messages = [{"content": prompt, "role": "system"}]
|
||||
response = get_client().chat.completions.create(
|
||||
messages=messages,
|
||||
model=deployment_name,
|
||||
max_tokens=int(max_tokens),
|
||||
temperature=float(temperature),
|
||||
top_p=float(top_p),
|
||||
n=int(n),
|
||||
)
|
||||
|
||||
# get first element because prompt is single.
|
||||
return response.choices[0].message.content
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
result = my_llm_tool(
|
||||
prompt="Write a simple Hello, world! program that displays the greeting message.",
|
||||
deployment_name="gpt-4o",
|
||||
)
|
||||
print(result)
|
||||
Reference in New Issue
Block a user