MCPcopy Index your code
hub / github.com/simstudioai/sim / checkForForcedToolUsageOpenAI

Function checkForForcedToolUsageOpenAI

apps/sim/providers/utils.ts:1398–1425  ·  view source on GitHub ↗
(
  response: OpenAI.Chat.Completions.ChatCompletion,
  toolChoice: string | { type: string; function?: { name: string }; name?: string },
  providerName: string,
  forcedTools: string[],
  usedForcedTools: string[],
  customLogger?: Logger
)

Source from the content-addressed store, hash-verified

1396 * @returns Object with hasUsedForcedTool flag and updated usedForcedTools array
1397 */
1398export function checkForForcedToolUsageOpenAI(
1399 response: OpenAI.Chat.Completions.ChatCompletion,
1400 toolChoice: string | { type: string; function?: { name: string }; name?: string },
1401 providerName: string,
1402 forcedTools: string[],
1403 usedForcedTools: string[],
1404 customLogger?: Logger
1405): { hasUsedForcedTool: boolean; usedForcedTools: string[] } {
1406 const checkLogger = customLogger || createLogger(`${providerName}Utils`)
1407 let hasUsedForcedTool = false
1408 let updatedUsedForcedTools = [...usedForcedTools]
1409
1410 if (typeof toolChoice === 'object' && response.choices[0]?.message?.tool_calls) {
1411 const toolCallsResponse = response.choices[0].message.tool_calls
1412 const result = trackForcedToolUsage(
1413 toolCallsResponse,
1414 toolChoice,
1415 checkLogger,
1416 providerName.toLowerCase().replace(/\s+/g, '-'),
1417 forcedTools,
1418 updatedUsedForcedTools
1419 )
1420 hasUsedForcedTool = result.hasUsedForcedTool
1421 updatedUsedForcedTools = result.usedForcedTools
1422 }
1423
1424 return { hasUsedForcedTool, usedForcedTools: updatedUsedForcedTools }
1425}

Callers 7

checkForForcedToolUsageFunction · 0.90
checkForForcedToolUsageFunction · 0.90
checkForForcedToolUsageFunction · 0.90
checkForForcedToolUsageFunction · 0.90
checkForForcedToolUsageFunction · 0.90
checkForForcedToolUsageFunction · 0.90
checkForForcedToolUsageFunction · 0.90

Calls 3

createLoggerFunction · 0.90
trackForcedToolUsageFunction · 0.85
replaceMethod · 0.65

Tested by

no test coverage detected