Skip to content

Conversation

sicoyle
Copy link
Contributor

@sicoyle sicoyle commented Aug 14, 2025

Thank you for helping make the Dapr documentation better!

Please follow this checklist before submitting:

  • Commits are signed with Developer Certificate of Origin (DCO - learn more)
  • Read the contribution guide
  • Commands include options for Linux, MacOS, and Windows within codetabs
  • New file and folder names are globally unique
  • Page references use shortcodes instead of markdown or URL links
  • Images use HTML style and have alternative text
  • Places where multiple code/command options are given have codetabs

In addition, please fill out the following to help reviewers understand this pull request:

Description

Add tool calling support in teh conversation api docs. I did not update the "How to converse" page as I need the rest of the SDKs updated to reference to bring in python & js code snippets and the other languages sdks updated with tool call support. So the corresponding updates here will be in a separate PR after SDKs are updated: https://docs.dapr.io/developing-applications/building-blocks/conversation/howto-conversation-layer/

Issue reference

#4687

@sicoyle sicoyle requested review from a team as code owners August 14, 2025 20:17
Copy link
Member

@msfussell msfussell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sicoyle Some comments

| `metadata` | [Metadata](#metadata) passed to conversation components. Optional |
| `scrub_pii` | A boolean value to enable obfuscation of sensitive information returning from the LLM. Optional |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has changed and anyway should not have an underscore.

@@ -30,34 +30,117 @@ POST http://localhost:<daprPort>/v1.0-alpha1/conversation/<llm-name>/converse

| Field | Description |
| --------- | ----------- |
| `name` | The name of the conversation component. Required |
| `context_id` | The ID of an existing chat (like in ChatGPT). Optional |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to camelCase

| `role` | The role for the LLM to assume. Possible values: 'user', 'tool', 'assistant' |
| `scrubPII` | A boolean value to enable obfuscation of sensitive information present in the content field. Set this value if PII for this specific content needs to be scrubbed exclusively. Optional |
| `messages` | Array of conversation messages. Required |
| `scrub_pii` | A boolean value to enable obfuscation of sensitive information present in the content field. Optional |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to camelCase


```
POST http://localhost:<daprPort>/v1.0-alpha1/conversation/<llm-name>/converse
POST http://localhost:<daprPort>/v1.0-alpha2/conversation/<llm-name>/converse
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update the Alpha API table here to move to alpha2 anc update the proto link
https://docs.dapr.io/operations/support/alpha-beta-apis/#alpha-apis

@@ -10,14 +10,14 @@ weight: 1400
The conversation API is currently in [alpha]({{% ref "certification-lifecycle.md#certification-levels" %}}).
{{% /alert %}}

Dapr provides an API to interact with Large Language Models (LLMs) and enables critical performance and security functionality with features like prompt caching and PII data obfuscation.
Dapr provides an API to interact with Large Language Models (LLMs) and enables critical performance and security functionality with features like prompt caching, PII data obfuscation, and tool calling capabilities.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Dapr provides an API to interact with Large Language Models (LLMs) and enables critical performance and security functionality with features like prompt caching, PII data obfuscation, and tool calling capabilities.
Dapr provides an API to interact with Large Language Models (LLMs) and enables critical performance and security functionality with features like prompt caching, PII data obfuscation, and tool calling capabilities.
The tool calling follows OpenAI's interface standards, making it easy to integrate with existing AI development workflows and tools.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenAI's interface standards -> OpenAI’s function calling format

@cicoyle cicoyle added this to the 1.16 milestone Aug 20, 2025
- Provide dynamic, context-aware responses
- Create multi-step workflows and automation

Tool calling follows OpenAI's interface standards, making it easy to integrate with existing AI development workflows and tools.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"interface standards" is not a common terminology. Let's use "OpenAI's function calling format" and provide a link

https://platform.openai.com/docs/guides/function-calling

@@ -10,14 +10,14 @@ weight: 1400
The conversation API is currently in [alpha]({{% ref "certification-lifecycle.md#certification-levels" %}}).
{{% /alert %}}

Dapr provides an API to interact with Large Language Models (LLMs) and enables critical performance and security functionality with features like prompt caching and PII data obfuscation.
Dapr provides an API to interact with Large Language Models (LLMs) and enables critical performance and security functionality with features like prompt caching, PII data obfuscation, and tool calling capabilities.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenAI's interface standards -> OpenAI’s function calling format


The `tool_choice` parameter controls how the model uses available tools:

- **`""`**: The model will not call any tool and instead generates a message (default when no tools are present)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is confusing: (default when no tools are present)

When no tools are present, would it behave like "auto" , or it will behave like ""

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants