File size: 1,467 Bytes
799674c
9abf365
799674c
9abf365
799674c
 
b740ca9
 
9abf365
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
799674c
 
 
 
 
 
 
 
 
 
 
 
 
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
from openai import OpenAI
from openai import APIConnectionError, APITimeoutError, AuthenticationError, RateLimitError

from ontochat.config import DEFAULT_MODEL, DEFAULT_SEED, DEFAULT_TEMPERATURE


def chat_completion(api_key, messages):
    client = OpenAI(api_key=api_key)
    try:
        response = client.chat.completions.create(
            model=DEFAULT_MODEL,
            messages=messages,
            seed=DEFAULT_SEED,
            temperature=DEFAULT_TEMPERATURE,
        )
    except APITimeoutError as e:
        return f"Request timed out. Retry your request after a brief wait. Error information: {e}"
    except APIConnectionError as e:
        return f"Issue connecting to our services. Check your network settings, proxy configuration, " \
               f"SSL certificates, or firewall rules. Error information: {e}"
    except AuthenticationError as e:
        return f"Your API key or token was invalid, expired, or revoked. Error information: {e}"
    except RateLimitError as e:
        return f"You have hit your assigned rate limit. Error information: {e}"
    return response.choices[0].message.content


def build_messages(history):
    """
    convert gardio.Chatbot history to OpenAI client messages
    :param history:
    :return:
    """
    messages = list()
    for item in history:
        messages.append({"role": "user", "content": item[0]})
        messages.append({"role": "system", "content": item[1]})
    return messages[1:]