Skip to content

Latest commit

 

History

History
160 lines (113 loc) · 8.75 KB

File metadata and controls

160 lines (113 loc) · 8.75 KB
title Azure OpenAI assistant trigger for Azure Functions
description Learn how to use the Azure OpenAI assistant trigger to execute code based on custom chat bots and skills in Azure Functions.
ms.topic reference
ms.custom
build-2024
devx-track-extended-java
devx-track-js
devx-track-python
devx-track-ts
build-2025
ms.collection
ce-skilling-ai-copilot
ms.date 05/15/2025
ms.update-cycle 180-days
zone_pivot_groups programming-languages-set-functions

Azure OpenAI assistant trigger for Azure Functions

[!INCLUDE preview-support]

The Azure OpenAI assistant trigger lets you run your code based on custom chat bot or skill request made to an assistant.

For information on setup and configuration details of the Azure OpenAI extension, see Azure OpenAI extensions for Azure Functions. To learn more about Azure OpenAI assistants, see Azure OpenAI Assistants API.

[!INCLUDE functions-support-notes-samples-openai]

Example

::: zone pivot="programming-language-csharp"
This example demonstrates how to create an assistant that adds a new todo task to a database. The trigger has a static description of Create a new todo task used by the model. The function itself takes a string, which represents a new task to add. When executed, the function adds the task as a new todo item in a custom item store and returns a response from the store.

:::code language="csharp" source="~/functions-openai-extension/samples/assistant/csharp-ooproc/AssistantSkills.cs" range="31-43" :::

::: zone-end
::: zone pivot="programming-language-java"

This example demonstrates how to create an assistant that adds a new todo task to a database. The trigger has a static description of Create a new todo task used by the model. The function itself takes a string, which represents a new task to add. When executed, the function adds the task as a new todo item in a custom item store and returns a response from the store.

:::code language="java" source="~/functions-openai-extension/samples/assistant/java/src/main/java/com/azfs/AssistantSkills.java" range="26-45":::

::: zone-end
::: zone pivot="programming-language-javascript,programming-language-typescript" This example demonstrates how to create an assistant that adds a new todo task to a database. The trigger has a static description of Create a new todo task used by the model. The function itself takes a string, which represents a new task to add. When executed, the function adds the task as a new todo item in a custom item store and returns a response from the store. ::: zone-end ::: zone pivot="programming-language-javascript"

:::code language="javascript" source="~/functions-openai-extension/samples/assistant/javascript/src/functions/assistantSkills.js" range="4-25":::

::: zone-end
::: zone pivot="programming-language-typescript"

:::code language="typescript" source="~/functions-openai-extension/samples/assistant/typescript/src/functions/assistantSkills.ts" range="4-25" :::

::: zone-end
::: zone pivot="programming-language-powershell"

This example demonstrates how to create an assistant that adds a new todo task to a database. The trigger has a static description of Create a new todo task used by the model. The function itself takes a string, which represents a new task to add. When executed, the function adds the task as a new todo item in a custom item store and returns a response from the store.

Here's the function.json file for Add Todo:

:::code language="json" source="~/functions-openai-extension/samples/assistant/powershell/AddTodo/function.json" :::

For more information about function.json file properties, see the Configuration section.

:::code language="powershell" source="~/functions-openai-extension/samples/assistant/powershell/AddTodo/run.ps1" :::

::: zone-end
::: zone pivot="programming-language-python"

This example demonstrates how to create an assistant that adds a new todo task to a database. The trigger has a static description of Create a new todo task used by the model. The function itself takes a string, which represents a new task to add. When executed, the function adds the task as a new todo item in a custom item store and returns a response from the store.

:::code language="python" source="~/functions-openai-extension/samples/assistant/python/assistant_skills.py" range="13-25" :::

::: zone-end

::: zone pivot="programming-language-csharp"

Attributes

Apply the AssistantSkillTrigger attribute to define an assistant trigger, which supports these parameters:

Parameter Description
FunctionDescription Gets the description of the assistant function, which is provided to the model.
FunctionName Optional. Gets or sets the name of the function called by the assistant.
ParameterDescriptionJson Optional. Gets or sets a JSON description of the function parameter, which is provided to the model. For more information, see Usage.

::: zone-end ::: zone pivot="programming-language-java"

Annotations

The AssistantSkillTrigger annotation enables you to define an assistant trigger, which supports these parameters:

Element Description
name Gets or sets the name of the input binding.
functionDescription Gets the description of the assistant function, which is provided to the model.
functionName Optional. Gets or sets the name of the function called by the assistant.
parameterDescriptionJson Optional. Gets or sets a JSON description of the function parameter, which is provided to the model. For more information, see Usage.

::: zone-end
::: zone pivot="programming-language-python"

Decorators

During the preview, define the input binding as a generic_trigger binding of type assistantSkillTrigger, which supports these parameters:

Parameter Description
function_description Gets the description of the assistant function, which is provided to the model.
function_name Optional. Gets or sets the name of a function called by the assistant.
parameterDescriptionJson Optional. Gets or sets a JSON description of the function parameter, which is provided to the model. For more information, see Usage.

::: zone-end ::: zone pivot="programming-language-powershell"

Configuration

The binding supports these configuration properties that you set in the function.json file.

Property Description
type Must be AssistantSkillTrigger.
direction Must be in.
name The name of the trigger.
functionName Gets or sets the name of the function called by the assistant.
functionDescription Gets the description of the assistant function, which is provided to the language model.
parameterDescriptionJson Optional. Gets or sets a JSON description of the function parameter, which is provided to the model. For more information, see Usage.

::: zone-end
::: zone pivot="programming-language-javascript,programming-language-typescript"

Configuration

The binding supports these properties, which are defined in your code:

Property Description
type Must be AssistantSkillTrigger.
name The name of the trigger.
functionName Gets or sets the name of the function called by the assistant.
functionDescription Gets the description of the assistant function, which is provided to the LLM
parameterDescriptionJson Optional. Gets or sets a JSON description of the function parameter, which is provided to the model. For more information, see Usage.

::: zone-end
See the Example section for complete examples.

Usage

When parameterDescriptionJson JSON value isn't provided, it's autogenerated. For more information on the syntax of this object, see the OpenAI API documentation.

Related content