12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/legion/extensions/azure_ai/runners/chat.rb', line 12
def create(deployment:, messages:, api_key:, endpoint:, api_version: '2024-10-21',
max_tokens: nil, temperature: nil, **)
body = { messages: messages }
body[:max_tokens] = max_tokens if max_tokens
body[:temperature] = temperature if temperature
path = "/openai/deployments/#{deployment}/chat/completions?api-version=#{api_version}"
response = client(api_key: api_key, endpoint: endpoint, api_version: api_version).post(path, body)
{
result: response.body,
usage: {
input_tokens: response.body.dig('usage', 'prompt_tokens') || 0,
output_tokens: response.body.dig('usage', 'completion_tokens') || 0,
cache_read_tokens: response.body.dig('usage', 'prompt_tokens_details', 'cached_tokens') || 0,
cache_write_tokens: 0
}
}
end
|