Predibase
Predibase
LiteLLM에서 Predibase의 모든 모델을 사용하는 방법을 알아봐요.
출처: 문서
본문
LiteLLM은 Predibase의 모든 모델을 지원해요.
사용법
API 키
import os
os.environ["PREDIBASE_API_KEY"] = ""
호출 예시
from litellm import completion
import os
## set ENV variables
os.environ["PREDIBASE_API_KEY"] = "predibase key"
os.environ["PREDIBASE_TENANT_ID"] = "predibase tenant id"
# predibase llama-3 call
response = completion(
model="predibase/llama-3-8b-instruct",
messages = [{ "content": "Hello, how are you?","role": "user"}]
)
config.yaml에 모델 추가:
model_list:
- model_name: llama-3
litellm_params:
model: predibase/llama-3-8b-instruct
api_key: os.environ/PREDIBASE_API_KEY
tenant_id: os.environ/PREDIBASE_TENANT_ID
Proxy 시작:
$ litellm --config /path/to/config.yaml --debug
OpenAI Python SDK로 요청:
import openai
client = openai.OpenAI(
api_key="sk-", # pass litellm proxy key, if you're using virtual keys
base_url="http://0.0.0.0:4000" # litellm-proxy-base url
)
response = client.chat.completions.create(
model="llama-3",
messages = [
{
"role": "system",
"content": "Be a good human!"
},
{
"role": "user",
"content": "What do you know about earth?"
}
]
)
print(response)
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header "Authorization: Bearer ***" \
--header 'Content-Type: application/json' \
--data '{
"model": "llama-3",
"messages": [
{
"role": "system",
"content": "Be a good human!"
},
{
"role": "user",
"content": "What do you know about earth?"
}
],
}'
고급 사용법 - 프롬프트 포맷팅
LiteLLM은 모든 meta-llama llama3 instruct 모델에 대한 프롬프트 템플릿 매핑을 제공해요. 코드 보기
사용자 정의 프롬프트 템플릿을 적용하려면:
import litellm
import os
os.environ["PREDIBASE_API_KEY"] = ""
# Create your own custom prompt template
litellm.register_prompt_template(
model="togethercomputer/LLaMA-2-7B-32K",
initial_prompt_value="You are a good assistant", # [OPTIONAL]
roles={
"system": {
"pre_message": "[INST] >\n", # [OPTIONAL]
"post_message": "\n>\n [/INST]\n" # [OPTIONAL]
},
"user": {
"pre_message": "[INST] ", # [OPTIONAL]
"post_message": " [/INST]" # [OPTIONAL]
},
"assistant": {
"pre_message": "\n", # [OPTIONAL]
"post_message": "\n" # [OPTIONAL]
}
},
final_prompt_value="Now answer as best you can:" # [OPTIONAL]
)
def predibase_custom_model():
model = "predibase/togethercomputer/LLaMA-2-7B-32K"
response = completion(model=model, messages=messages)
print(response['choices'][0]['message']['content'])
return response
predibase_custom_model()
# Model-specific parameters
model_list:
- model_name: mistral-7b # model alias
litellm_params: # actual params for litellm.completion()
model: "predibase/mistralai/Mistral-7B-Instruct-v0.1"
api_key: os.environ/PREDIBASE_API_KEY
initial_prompt_value: "\n"
roles: {"system":{"pre_message":"system\n", "post_message":""}, "assistant":{"pre_message":"assistant\n","post_message":""}, "user":{"pre_message":"user\n","post_message":""}}
final_prompt_value: "\n"
bos_token: ""
eos_token: ""
max_tokens: 4096
추가 파라미터 전달 - max_tokens, temperature
litellm.completion 지원 파라미터 전체 목록은 여기를 참고해요.
# !uv add litellm
from litellm import completion
import os
## set ENV variables
os.environ["PREDIBASE_API_KEY"] = "predibase key"
# predibae llama-3 call
response = completion(
model="predibase/llama3-8b-instruct",
messages = [{ "content": "Hello, how are you?","role": "user"}],
max_tokens=20,
temperature=0.5
)
프록시:
model_list:
- model_name: llama-3
litellm_params:
model: predibase/llama-3-8b-instruct
api_key: os.environ/PREDIBASE_API_KEY
max_tokens: 20
temperature: 0.5
Predibase 전용 파라미터 전달 - adapter_id, adapter_source
litellm.completion()이 지원하지 않지만 Predibase가 지원하는 파라미터는 litellm.completion에 직접 전달해요. 예를 들어 adapter_id, adapter_source는 Predibase 전용 파라미터예요.
# !uv add litellm
from litellm import completion
import os
## set ENV variables
os.environ["PREDIBASE_API_KEY"] = "predibase key"
# predibase llama3 call
response = completion(
model="predibase/llama-3-8b-instruct",
messages = [{ "content": "Hello, how are you?","role": "user"}],
adapter_id="my_repo/3",
adapter_source="pbase",
)
프록시:
model_list:
- model_name: llama-3
litellm_params:
model: predibase/llama-3-8b-instruct
api_key: os.environ/PREDIBASE_API_KEY
adapter_id: my_repo/3
adapter_source: pbase
더 알아보기 (Learn more)
- Predibase 공식 문서
- LiteLLM 컴플리션 API