# Run AI Chat — Speak AI

> Ask a question about Speak AI media and get the answer back. Scope the question to specific media files, to a whole folder, or to both. Answers are only as good as the prompt, so be specific about the output wanted. Media must finish…

- Key: `speak_ai-run-ai-chat`
- Type: Action (Write)
- Version: 0.0.2
- App: Speak AI (`speak_ai`) — https://pipedream.com/apps/speak-ai.md
- This page (HTML): https://pipedream.com/apps/speak-ai/actions/run-ai-chat
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/speak_ai/actions/run-ai-chat/run-ai-chat.mjs

## Description

Ask a question about Speak AI media and get the answer back. Scope the question to specific media files, to a whole folder, or to both. Answers are only as good as the prompt, so be specific about the output wanted. Media must finish analyzing first. [See the documentation](https://docs.speakai.co/api/ai-chat/#post-prompt).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `prompt` | `string` | Yes | The question or instruction for the AI to answer about the media, e.g. Summarize the key action items from this transcript. Be as descriptive as possible to get an accurate answer |
| `folderId` | `string` | No | A Speak AI folder ID, for example 905c208f1c07. Get it from the folderId field returned by Speak AI. Answer the prompt from every media file in this folder. Set this, Media IDs, or both. Options are loaded from the connected account. |
| `mediaIds` | `string[]` | No | One or more Speak AI media IDs to answer the prompt from, e.g. f8eb3c22bec3. Returned as mediaId by Upload Media and by every media trigger in this app Options are loaded from the connected account. |
| `assistantType` | `string` | No | The assistant persona used to answer the prompt: general (default), researcher for academic analysis, marketer for content, sales for deal insights, or recruiter for hiring |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "speak_ai",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "speak_ai-run-ai-chat",
  arguments: {
    prompt: "Prompt",
    folderId: "Folder ID",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "speak_ai-run-ai-chat",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    speak_ai: { authProvisionId: "apn_xxxxxxx" },
    prompt: "Prompt",
    folderId: "Folder ID",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "speak_ai-run-ai-chat",
    "configured_props": {
      "speak_ai": { "authProvisionId": "apn_xxxxxxx" },
      "prompt": "Prompt",
      "folderId": "Folder ID"
    }
  }'
```

---

- App: https://pipedream.com/apps/speak-ai.md · All apps: https://pipedream.com/apps
