File size: 2,537 Bytes
395201c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#### What this tests ####
#  Allow the user to map the function to the prompt, if the model doesn't support function calling

import sys, os, pytest
import traceback

sys.path.insert(
    0, os.path.abspath("../..")
)  # Adds the parent directory to the system path
import litellm

## case 1: set_function_to_prompt not set 
def test_function_call_non_openai_model():
    try: 
        model = "claude-instant-1"
        messages=[{"role": "user", "content": "what's the weather in sf?"}]
        functions = [
            {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state, e.g. San Francisco, CA"
                },
                "unit": {
                    "type": "string",
                    "enum": ["celsius", "fahrenheit"]
                }
                },
                "required": ["location"]
            }
            }
        ]
        response = litellm.completion(model=model, messages=messages, functions=functions)
        pytest.fail(f'An error occurred')
    except Exception as e: 
        print(e)
        pass

test_function_call_non_openai_model()

## case 2: add_function_to_prompt set 
def test_function_call_non_openai_model_litellm_mod_set():
    litellm.add_function_to_prompt = True
    try: 
        model = "claude-instant-1"
        messages=[{"role": "user", "content": "what's the weather in sf?"}]
        functions = [
            {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state, e.g. San Francisco, CA"
                },
                "unit": {
                    "type": "string",
                    "enum": ["celsius", "fahrenheit"]
                }
                },
                "required": ["location"]
            }
            }
        ]
        response = litellm.completion(model=model, messages=messages, functions=functions)
        print(f'response: {response}')
    except Exception as e: 
        pytest.fail(f'An error occurred {e}')

# test_function_call_non_openai_model_litellm_mod_set()