File size: 1,114 Bytes
e5faeaf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// OpenAI 相容 tools 格式:{ type: 'function', function: { name, description, parameters } }
// 少了 type/function 外層包裝,OpenRouter 等端點會直接回 400。

export const tools = [
  {
    name: 'search_web',
    description: '即時搜尋網路資訊,回傳相關結果摘要',
    parameters: {
      type: 'object',
      properties: {
        query: { type: 'string', description: '要搜尋的關鍵字或問題' },
      },
      required: ['query'],
    },
  },
  {
    name: 'calculate',
    description: '計算四則運算表達式,只支援數字與 + - * / ( ) . %',
    parameters: {
      type: 'object',
      properties: {
        expression: { type: 'string', description: '運算式,例如 (2+3)*4' },
      },
      required: ['expression'],
    },
  },
]

/** 把內部工具定義轉成 OpenAI 相容格式 */
export function toOpenAITools(list) {
  return (list || []).map((t) => ({
    type: 'function',
    function: {
      name: t.name,
      description: t.description || '',
      parameters: t.parameters || { type: 'object', properties: {} },
    },
  }))
}