forked from phoenix/litellm-mirror
fix(utils.py): route together ai calls to openai client
together ai is now openai-compatible n
This commit is contained in:
parent
c2f674ebe0
commit
c49c88c8e5
6 changed files with 23 additions and 4 deletions
|
@ -285,6 +285,7 @@ openai_compatible_endpoints: List = [
|
||||||
"api.endpoints.anyscale.com/v1",
|
"api.endpoints.anyscale.com/v1",
|
||||||
"api.deepinfra.com/v1/openai",
|
"api.deepinfra.com/v1/openai",
|
||||||
"api.mistral.ai/v1",
|
"api.mistral.ai/v1",
|
||||||
|
"api.together.xyz/v1",
|
||||||
]
|
]
|
||||||
|
|
||||||
# this is maintained for Exception Mapping
|
# this is maintained for Exception Mapping
|
||||||
|
@ -294,6 +295,7 @@ openai_compatible_providers: List = [
|
||||||
"deepinfra",
|
"deepinfra",
|
||||||
"perplexity",
|
"perplexity",
|
||||||
"xinference",
|
"xinference",
|
||||||
|
"together_ai",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -440,8 +440,8 @@ class OpenAIChatCompletion(BaseLLM):
|
||||||
input=data["messages"],
|
input=data["messages"],
|
||||||
api_key=api_key,
|
api_key=api_key,
|
||||||
additional_args={
|
additional_args={
|
||||||
"headers": headers,
|
"headers": {"Authorization": f"Bearer {openai_client.api_key}"},
|
||||||
"api_base": api_base,
|
"api_base": openai_client._base_url._uri_reference,
|
||||||
"acompletion": False,
|
"acompletion": False,
|
||||||
"complete_input_dict": data,
|
"complete_input_dict": data,
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
"""
|
||||||
|
Deprecated. We now do together ai calls via the openai client.
|
||||||
|
Reference: https://docs.together.ai/docs/openai-api-compatibility
|
||||||
|
"""
|
||||||
import os, types
|
import os, types
|
||||||
import json
|
import json
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
|
@ -791,6 +791,7 @@ def completion(
|
||||||
or custom_llm_provider == "anyscale"
|
or custom_llm_provider == "anyscale"
|
||||||
or custom_llm_provider == "mistral"
|
or custom_llm_provider == "mistral"
|
||||||
or custom_llm_provider == "openai"
|
or custom_llm_provider == "openai"
|
||||||
|
or custom_llm_provider == "together_ai"
|
||||||
or "ft:gpt-3.5-turbo" in model # finetune gpt-3.5-turbo
|
or "ft:gpt-3.5-turbo" in model # finetune gpt-3.5-turbo
|
||||||
): # allow user to make an openai call with a custom base
|
): # allow user to make an openai call with a custom base
|
||||||
# note: if a user sets a custom base - we should ensure this works
|
# note: if a user sets a custom base - we should ensure this works
|
||||||
|
@ -1330,6 +1331,9 @@ def completion(
|
||||||
or ("togethercomputer" in model)
|
or ("togethercomputer" in model)
|
||||||
or (model in litellm.together_ai_models)
|
or (model in litellm.together_ai_models)
|
||||||
):
|
):
|
||||||
|
"""
|
||||||
|
Deprecated. We now do together ai calls via the openai client - https://docs.together.ai/docs/openai-api-compatibility
|
||||||
|
"""
|
||||||
custom_llm_provider = "together_ai"
|
custom_llm_provider = "together_ai"
|
||||||
together_ai_key = (
|
together_ai_key = (
|
||||||
api_key
|
api_key
|
||||||
|
|
|
@ -1994,11 +1994,12 @@ def test_completion_palm_stream():
|
||||||
|
|
||||||
|
|
||||||
def test_completion_together_ai_stream():
|
def test_completion_together_ai_stream():
|
||||||
|
litellm.set_verbose = True
|
||||||
user_message = "Write 1pg about YC & litellm"
|
user_message = "Write 1pg about YC & litellm"
|
||||||
messages = [{"content": user_message, "role": "user"}]
|
messages = [{"content": user_message, "role": "user"}]
|
||||||
try:
|
try:
|
||||||
response = completion(
|
response = completion(
|
||||||
model="together_ai/mistralai/Mistral-7B-Instruct-v0.1",
|
model="together_ai/mistralai/Mixtral-8x7B-Instruct-v0.1",
|
||||||
messages=messages,
|
messages=messages,
|
||||||
stream=True,
|
stream=True,
|
||||||
max_tokens=5,
|
max_tokens=5,
|
||||||
|
|
|
@ -863,6 +863,7 @@ class Logging:
|
||||||
curl_command += additional_args.get("request_str", None)
|
curl_command += additional_args.get("request_str", None)
|
||||||
elif api_base == "":
|
elif api_base == "":
|
||||||
curl_command = self.model_call_details
|
curl_command = self.model_call_details
|
||||||
|
print_verbose(f"\033[92m{curl_command}\033[0m\n")
|
||||||
verbose_logger.info(f"\033[92m{curl_command}\033[0m\n")
|
verbose_logger.info(f"\033[92m{curl_command}\033[0m\n")
|
||||||
if self.logger_fn and callable(self.logger_fn):
|
if self.logger_fn and callable(self.logger_fn):
|
||||||
try:
|
try:
|
||||||
|
@ -4043,7 +4044,7 @@ def get_optional_params(
|
||||||
_check_valid_arg(supported_params=supported_params)
|
_check_valid_arg(supported_params=supported_params)
|
||||||
|
|
||||||
if stream:
|
if stream:
|
||||||
optional_params["stream_tokens"] = stream
|
optional_params["stream"] = stream
|
||||||
if temperature is not None:
|
if temperature is not None:
|
||||||
optional_params["temperature"] = temperature
|
optional_params["temperature"] = temperature
|
||||||
if top_p is not None:
|
if top_p is not None:
|
||||||
|
@ -4677,6 +4678,13 @@ def get_llm_provider(
|
||||||
# voyage is openai compatible, we just need to set this to custom_openai and have the api_base be https://api.voyageai.com/v1
|
# voyage is openai compatible, we just need to set this to custom_openai and have the api_base be https://api.voyageai.com/v1
|
||||||
api_base = "https://api.voyageai.com/v1"
|
api_base = "https://api.voyageai.com/v1"
|
||||||
dynamic_api_key = get_secret("VOYAGE_API_KEY")
|
dynamic_api_key = get_secret("VOYAGE_API_KEY")
|
||||||
|
elif custom_llm_provider == "together_ai":
|
||||||
|
api_base = "https://api.together.xyz/v1"
|
||||||
|
dynamic_api_key = (
|
||||||
|
get_secret("TOGETHER_API_KEY")
|
||||||
|
or get_secret("TOGETHER_AI_API_KEY")
|
||||||
|
or get_secret("TOGETHERAI_API_KEY")
|
||||||
|
)
|
||||||
return model, custom_llm_provider, dynamic_api_key, api_base
|
return model, custom_llm_provider, dynamic_api_key, api_base
|
||||||
elif model.split("/", 1)[0] in litellm.provider_list:
|
elif model.split("/", 1)[0] in litellm.provider_list:
|
||||||
custom_llm_provider = model.split("/", 1)[0]
|
custom_llm_provider = model.split("/", 1)[0]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue