Spaces:
Sleeping
Sleeping
from dotenv import load_dotenv | |
load_dotenv() # take environment variables from .env | |
import os | |
from openai import OpenAI | |
import vcr | |
client = OpenAI( | |
base_url=os.environ.get("OPENAI_API_BASE"), | |
api_key=os.environ.get("OPENAI_API_KEY"), | |
) | |
def completion(prompt, max_tokens=None, temperature=0): | |
_completion = client.completions.create( | |
model="gpt-3.5-turbo-instruct", | |
prompt=prompt, | |
max_tokens=max_tokens, | |
temperature=temperature, | |
) | |
return _completion.choices[0].text.strip() | |
def chat_completion(message, model="gpt-3.5-turbo", prompt=None, temperature=0): | |
# Initialize the messages list | |
messages = [] | |
# Add the prompt to the messages list | |
if prompt is not None: | |
messages += [{"role": "system", "content": prompt}] | |
if message is not None: | |
# Add the user's message to the messages list | |
messages += [{"role": "user", "content": message}] | |
# Make an API call to the OpenAI ChatCompletion endpoint with the model and messages | |
_completion = client.chat.completions.create( | |
model=model, messages=messages, temperature=temperature | |
) | |
# Extract and return the AI's response from the API response | |
return _completion.choices[0].message.content.strip() | |
def __vcr(): | |
return vcr.VCR( | |
serializer="yaml", | |
cassette_library_dir="tests/fixtures/cassettes", | |
record_mode="new_episodes", | |
match_on=["uri", "method", "path", "query", "body"], | |
record_on_exception=False, | |
) | |
def cassette_for(name): | |
filename = name + ".yaml" | |
return __vcr().use_cassette(filename, filter_headers=[("authorization", None)]) | |