"""
Configuration parameters for the VLLM inference
"""

# Environment and API settings
TOOLS = ["websearch"]
OPENAI_API_KEY = "EMPTY"
# OPENAI_API_BASE = "http://localhost:8000/v1"
OPENAI_API_BASE = "http://10.221.105.108:58000/v1"
# curl https://api.openai.com/v1/models -H "Authorization: Bearer "EMPTY""

MODEL_NAME = "default"
# Model inference parameters
TEMPERATURE = 0.7
TOP_P = 0.8
MAX_TOKENS = 8192
REPETITION_PENALTY = 1.05

# INSTRUCTION_FOLLOWING = (
#     r'You FIRST think about the reasoning process as an internal monologue and then provide the final answer. '
#     r'The reasoning process MUST BE enclosed within <think> </think> tags. The final answer MUST BE put in <answer> </answer> tags.'
# )

# Instruction template
# INSTRUCTION_FOLLOWING = """Answer the given question. You can use the tools provided to you to answer the question. You can use the tool as many times as you want.
# You must first conduct reasoning inside <think>...</think>. If you need to use the tool, you can use the tool call <tool_call>...</tool_call> to call the tool after <think>...</think>.
# When you have the final answer, you can output the answer inside <answer>...</answer>.

# Output format for tool call:
# <think>
# ...
# </think>
# <tool_call>
# ...
# </tool_call>

# Output format for answer:
# <think>
# ...
# </think>
# <answer>
# ...
# </answer>
# """ 

INSTRUCTION_FOLLOWING = """You can use the multiple provided tools to answer users' questions, and the tools can be used as many times as needed. To answer users' questions more accurately and comprehensively, you need to gradually carry out task planning, tool calling, step reflection, and provide the final answer. Each tool call should be a JSON object with a “name” field and a “arguments” field containing a dictionary of parameters. The output formats for different steps are as follows:

Output format for Plan:
<think>
...
<Plan>
...
</Plan>
</think>

Output format for tool call:
<think>
...
</think>
<tool_call>
...
</tool_call>

Output format for reflect:
<think>
...
<Reflect>
...
</Reflect>
</think>

Output format for answer:
<think>
...
</think>
<answer>
...
</answer>
"""