Codestral API [Mistral AI]
Codestral API [Mistral AI]
Codestral은 선택된 코드 완성 플러그인에서 사용할 수 있지만 직접 쿼리할 수도 있어요. 자세한 내용은 설명서를 참고하세요.
출처: 문서
본문
API 키
# env variable
os.environ['CODESTRAL_API_KEY']
FIM / Completions
공식 Mistral API 문서: https://docs.mistral.ai/api/#operation/createFIMCompletion
샘플 사용법 (No Streaming)
import os
import litellm
os.environ['CODESTRAL_API_KEY']
response = await litellm.atext_completion(
model="text-completion-codestral/codestral-2405",
prompt="def is_odd(n): \n return n % 2 == 1 \ndef test_is_odd():",
suffix="return True", # optional
temperature=0, # optional
top_p=1, # optional
max_tokens=10, # optional
min_tokens=10, # optional
seed=10, # optional
stop=["return"], # optional
)
예상 응답:
{
"id": "b41e0df599f94bc1a46ea9fcdbc2aabe",
"object": "text_completion",
"created": 1589478378,
"model": "codestral-latest",
"choices": [
{
"text": "\n assert is_odd(1)\n assert",
"index": 0,
"logprobs": null,
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 5,
"completion_tokens": 7,
"total_tokens": 12
}
}
샘플 사용법 - 스트리밍
import os
import litellm
os.environ['CODESTRAL_API_KEY']
response = await litellm.atext_completion(
model="text-completion-codestral/codestral-2405",
prompt="def is_odd(n): \n return n % 2 == 1 \ndef test_is_odd():",
suffix="return True", # optional
temperature=0, # optional
top_p=1, # optional
stream=True,
seed=10, # optional
stop=["return"], # optional
)
async for chunk in response:
print(chunk)
예상 응답:
{
"id": "726025d3e2d645d09d475bb0d29e3640",
"object": "text_completion",
"created": 1718659669,
"choices": [
{
"text": "This",
"index": 0,
"logprobs": null,
"finish_reason": null
}
],
"model": "codestral-2405"
}
지원 모델
https://docs.mistral.ai/platform/endpoints 에 나열된 모든 모델이 지원돼요. 모델 목록, 가격, 토큰 창 등을 이곳에서 적극적으로 유지 관리해요.
| 모델 이름 | 함수 호출 |
|---|---|
| Codestral Latest | completion(model="text-completion-codestral/codestral-latest", messages) |
| Codestral 2405 | completion(model="text-completion-codestral/codestral-2405", messages) |
Chat Completions
공식 Mistral API 문서: https://docs.mistral.ai/api/#operation/createChatCompletion
샘플 사용법 (No Streaming)
import os
import litellm
os.environ['CODESTRAL_API_KEY']
response = await litellm.acompletion(
model="codestral/codestral-latest",
messages=[
{
"role": "user",
"content": "Hey, how's it going?",
}
],
temperature=0.0, # optional
top_p=1, # optional
max_tokens=10, # optional
safe_prompt=False, # optional
seed=12, # optional
)
예상 응답:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "codestral/codestral-latest",
"system_fingerprint": null,
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?"
},
"logprobs": null,
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
샘플 사용법 - 스트리밍
import os
import litellm
os.environ['CODESTRAL_API_KEY']
response = await litellm.acompletion(
model="codestral/codestral-latest",
messages=[
{
"role": "user",
"content": "Hey, how's it going?",
}
],
stream=True, # optional
temperature=0.0, # optional
top_p=1, # optional
max_tokens=10, # optional
safe_prompt=False, # optional
seed=12, # optional
)
async for chunk in response:
print(chunk)
예상 응답:
{
"id":"chatcmpl-123",
"object":"chat.completion.chunk",
"created":1694268190,
"model": "codestral/codestral-latest",
"system_fingerprint": null,
"choices":[{
"index":0,
"delta":{"role":"assistant","content":"gm"},
"logprobs":null,
"finish_reason":null
}]
}