Spaces:
Paused
Paused
| import json | |
| import os | |
| from unittest.mock import patch | |
| import pytest | |
| from litellm import completion | |
| from litellm.llms.custom_httpx.http_handler import HTTPHandler | |
| def test_completion_datarobot(): | |
| """Ensure that the completion function works with DataRobot API.""" | |
| messages = [{"role": "user", "content": "What's the weather like in San Francisco?"}] | |
| try: | |
| client = HTTPHandler() | |
| with patch.object(client, "post") as mock_post: | |
| response = completion( | |
| model="datarobot/vertex_ai/gemini-1.5-flash-002", | |
| messages=messages, | |
| client=client, | |
| max_tokens=5, | |
| clientId="custom-model", | |
| ) | |
| print(response) | |
| # Add any assertions here to check the response | |
| mock_post.assert_called_once() | |
| mocks_kwargs = mock_post.call_args.kwargs | |
| assert mocks_kwargs["url"] == "https://app.datarobot.com/api/v2/genai/llmgw/chat/completions/" | |
| assert mocks_kwargs["headers"]["Authorization"] == "Bearer fake-api-key" | |
| json_data = json.loads(mock_post.call_args.kwargs["data"]) | |
| assert json_data["clientId"] == "custom-model" | |
| except Exception as e: | |
| pytest.fail(f"Error occurred: {e}") | |
| def test_completion_datarobot_with_deployment(): | |
| """Ensure that deployment URL is used correctly.""" | |
| messages = [{"role": "user", "content": "What's the weather like in San Francisco?"}] | |
| try: | |
| client = HTTPHandler() | |
| with patch.object(client, "post") as mock_post: | |
| response = completion( | |
| model="datarobot/vertex_ai/gemini-1.5-flash-002", | |
| messages=messages, | |
| client=client, | |
| max_tokens=5, | |
| clientId="custom-model", | |
| ) | |
| print(response) | |
| # Add any assertions here to check the response | |
| mock_post.assert_called_once() | |
| mocks_kwargs = mock_post.call_args.kwargs | |
| assert mocks_kwargs["url"] == "https://app.datarobot.com/api/v2/deployments/deployment_id/" | |
| assert mocks_kwargs["headers"]["Authorization"] == "Bearer fake-api-key" | |
| json_data = json.loads(mock_post.call_args.kwargs["data"]) | |
| assert json_data["clientId"] == "custom-model" | |
| except Exception as e: | |
| pytest.fail(f"Error occurred: {e}") | |
| def test_completion_datarobot_with_environment_variables(): | |
| """Allow the test to run with environment variables if they are set for integrations.""" | |
| # If keys are not set, the test will be skipped | |
| if os.environ.get("DATAROBOT_API_TOKEN") is None: | |
| return | |
| messages = [{"role": "user", "content": "What's the weather like in San Francisco?"}] | |
| try: | |
| response = completion( | |
| model="datarobot/vertex_ai/gemini-1.5-flash-002", messages=messages, max_tokens=5, clientId="custom-model" | |
| ) | |
| print(response) | |
| assert response["object"] == "chat.completion" | |
| assert response["model"] == "gemini-1.5-flash-002" | |
| assert len(response["choices"]) == 1 | |
| assert len(response["choices"][0]["message"]["content"]) > 0 | |
| except Exception as e: | |
| pytest.fail(f"Error occurred: {e}") | |