Sample code for 30+ languages & platforms
JavaScript

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.
Note
This example is intended for running within a Chilkat.Js embedded JavaScript engine. All Chilkat JavaScript examples require Chilkat v11.4.0 or greater.
JavaScript
var success = false;

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

var ai = new 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-4-1-20250805";

// Create a new conversation to be maintained locally in memory.
// If the conversation is the first to be created, it is also automatically selected.
var systemMsg = "You are a helpful assistant";
var developerMsg = "Respond only with markdown";
var 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.
success = ai.Ask("text");
if (success == false) {
    console.log(ai.LastErrorText);
    return;
}

// Get the text response.
var sbResponse = new CkStringBuilder();
ai.GetOutputTextSb(sbResponse);
console.log(sbResponse.GetAsString());
console.log("----");

// -------------------------------------------------------------
// 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.");
success = ai.Ask("text");
if (success == false) {
    console.log(ai.LastErrorText);
    return;
}

// Get the text response.
sbResponse.Clear();
ai.GetOutputTextSb(sbResponse);
console.log(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...
// 
var json = new CkJsonObject();
ai.ExportConvo(conversationName,json);
json.EmitCompact = false;
console.log(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. 🏔️"
//         }
//       ]
//     }
//   ]
// }