Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.2.0+

AI: Simple Conversation

See more AI Examples

Initiates a conversation and sends two requests. The second request includes the transcript of the messages between the user and assistant from the first request.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final ai = CkAi();

  // The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity".
  // Support for additional providers will be added in future versions of Chilkat.
  ai.provider = 'claude';

  // Use your provider's API key.
  ai.apiKey = 'MY_API_KEY';

  // Choose a model.
  ai.model = 'claude-opus-5';

  // Create a new conversation to be maintained locally in memory.
  // If the conversation is the first to be created, it is also automatically selected.
  final systemMsg = 'You are a helpful assistant';
  final developerMsg = 'Respond only with markdown';
  final conversationName = 'test_conversation';
  ai.newConvo(conversationName, systemMsg, developerMsg);

  // -------------------------------------------------------------------------------------------
  // Make the first request...
  // Add a text input.
  ai.inputAddText('Say Hello');

  // Ask the AI for text output.
  try {
    ai.ask('text');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Get the text response.
  final sbResponse = CkStringBuilder();
  ai.getOutputTextSb(sbResponse);
  print(sbResponse.getAsString());
  print('----');

  // -------------------------------------------------------------
  // The response is in markdown format.
  // Also see Markdown to HTML Conversion Examples.
  // -------------------------------------------------------------

  // Sample output:

  // # Hello! 👋
  // ## Welcome!
  // It's **great** to meet you. How can I *assist* you today?
  // ---
  // Feel free to ask me anything, and I'll respond in `markdown` format.

  // -------------------------------------------------------------------------------------------
  // Send the 2nd request in the conversation.
  ai.inputAddText('Thanks for saying Hello. Please give me a 2 sentence bit of wisdom from Confucious.');
  try {
    ai.ask('text');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Get the text response.
  sbResponse.clear();
  ai.getOutputTextSb(sbResponse);
  print(sbResponse.getAsString());

  // Sample output:

  // ## Wisdom from Confucius
  // > *"The man who moves a mountain begins by carrying away small stones. It does not matter how slowly you go as long as you do not stop."*
  // These words remind us that **persistence** and **patience** are the keys to achieving even the most daunting goals. 🏔️

  // -------------------------------------------------------------------------------------------
  // Look at the conversation so far...
  // 
  final json = CkJsonObject();
  ai.exportConvo(conversationName, json);
  json.emitCompact = false;
  print(json.emit());

  // Note: The conversation transcript format exported and imported by Chilkat is always the OpenAI format,
  // regardless of the AI provider.  (Chilkat translates the format from OpenAI to whatever is needed by the actual AI provider being used.)

  // {
  //   "input": [
  //     {
  //       "role": "system",
  //       "content": [
  //         {
  //           "type": "input_text",
  //           "text": "You are a helpful assistant"
  //         }
  //       ]
  //     },
  //     {
  //       "role": "developer",
  //       "content": [
  //         {
  //           "type": "input_text",
  //           "text": "Respond only with markdown"
  //         }
  //       ]
  //     },
  //     {
  //       "role": "user",
  //       "content": [
  //         {
  //           "type": "input_text",
  //           "text": "Say Hello"
  //         }
  //       ]
  //     },
  //     {
  //       "role": "assistant",
  //       "content": [
  //         {
  //           "type": "output_text",
  //           "text": "# Hello! 👋\n\n**Welcome!** It's *great* to meet you.\n\nHow can I assist you today?"
  //         }
  //       ]
  //     },
  //     {
  //       "role": "user",
  //       "content": [
  //         {
  //           "type": "input_text",
  //           "text": "Thanks for saying Hello. Please give me a 2 sentence bit of wisdom from Confucious."
  //         }
  //       ]
  //     },
  //     {
  //       "role": "assistant",
  //       "content": [
  //         {
  //           "type": "output_text",
  //           "text": "## Wisdom from Confucius\n\n> *\"The man who moves a mountain begins by carrying away small stones. It does not matter how slowly you go as long as you do not stop.\"*\n\nThese words remind us that **persistence** and **patience** are the keys to achieving even the most daunting goals. 🏔️"
  //         }
  //       ]
  //     }
  //   ]
  // }
}