from openai import OpenAI def call(messages, model): completion = client.chat.completions.create( model=model, messages=messages, tools=tools ) print(completion.choices[0].message) client = OpenAI( base_url="http://localhost:8000/v1", api_key="api_key")model = "skt/A.X-4.0-Light" calculate_discount = { "type": "function", "function": { "name": "calculate_discount", "description": "원가격과 할인율(퍼센트 단위)을 입력받아 할인된 가격을계산한다.", "parameters": { "type": "object", "properties": { "original_price": { "type": "number", "description": "상품의 원래 가격" }, "discount_percentage": { "type": "number", "description": "적용할 할인율(예: 20% 할인의 경우 20을 입력)" } }, "required": ["original_price", "discount_percentage"] } }}get_exchange_rate = { "type": "function", "function": { "name": "get_exchange_rate", "description": "두 통화 간의 환율을 가져온다.", "parameters": { "type": "object", "properties": { "base_currency": { "type": "string", "description": "The currency to convert from." }, "target_currency": { "type": "string", "description": "The currency to convert to." } }, "required": ["base_currency", "target_currency"] } }}tools = [calculate_discount, get_exchange_rate] ### Slot filling ###messages = [{"role": "user", "content": "우리가 뭘 사야되는데 원래 57600원인데 직원할인 받을 수 있거든? 할인가좀 계산해줘"}]call(messages, model)# Output:# ChatCompletionMessage(content='할인율을 알려주시겠습니까?', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=[], reasoning_content=None) ### Function calling ###messages = [ {"role": "user", "content": "우리가 뭘 사야되는데 원래 57600원인데 직원할인 받을 수 있거든? 할인가좀 계산해줘"}, {"role": "assistant", "content": "할인율을 알려주시겠습니까?"}, {"role": "user", "content": "15% 할인 받을 수 있어."},]call(messages, model)# Output: # ChatCompletionMessage(content=None, refusal=None, role='assistant', audio=None, function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='chatcmpl-tool-7778d1d9fca94bf2acbb44c79359502c', function=Function(arguments='{"original_price": 57600, "discount_percentage": 15}', name='calculate_discount'), type='function')], reasoning_content=None) ### Completion ###messages = [ {"role": "user", "content": "우리가 뭘 사야되는데 원래 57600원인데 직원할인 받을 수 있거든? 할인가좀 계산해줘"}, {"role": "assistant", "content": "할인율을 알려주시겠습니까?"}, {"role": "user", "content": "15% 할인 받을 수 있어."}, {"role": "tool", "tool_call_id": "random_id", "name": "calculate_discount", "content": "{\"original_price\": 57600, \"discount_percentage\": 15, \"discounted_price\": 48960.0}"}]call(messages, model)# Output: # ChatCompletionMessage(content='57600원의 상품에서 15% 할인을 적용하면, 할인된 가격은 48960원입니다.', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=[], reasoning_content=None)