![]()  | 
  
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
 
      (PureBasic) AI: Simple ConversationSee more AI ExamplesInitiates 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 requires Chilkat v11.2.0 or greater. 
 IncludeFile "CkStringBuilder.pb" IncludeFile "CkAi.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() success.i = 0 ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ai.i = CkAi::ckCreate() If ai.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity". ; Support for additional providers will be added in future versions of Chilkat. CkAi::setCkProvider(ai, "claude") ; Use your provider's API key. CkAi::setCkApiKey(ai, "MY_API_KEY") ; Choose a model. CkAi::setCkModel(ai, "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. systemMsg.s = "You are a helpful assistant" developerMsg.s = "Respond only with markdown" conversationName.s = "test_conversation" CkAi::ckNewConvo(ai,conversationName,systemMsg,developerMsg) ; ------------------------------------------------------------------------------------------- ; Make the first request... ; Add a text input. CkAi::ckInputAddText(ai,"Say Hello") ; Ask the AI for text output. success = CkAi::ckAsk(ai,"text") If success = 0 Debug CkAi::ckLastErrorText(ai) CkAi::ckDispose(ai) ProcedureReturn EndIf ; Get the text response. sbResponse.i = CkStringBuilder::ckCreate() If sbResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAi::ckGetOutputTextSb(ai,sbResponse) Debug CkStringBuilder::ckGetAsString(sbResponse) Debug "----" ; ------------------------------------------------------------- ; 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. CkAi::ckInputAddText(ai,"Thanks for saying Hello. Please give me a 2 sentence bit of wisdom from Confucious.") success = CkAi::ckAsk(ai,"text") If success = 0 Debug CkAi::ckLastErrorText(ai) CkAi::ckDispose(ai) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndIf ; Get the text response. CkStringBuilder::ckClear(sbResponse) CkAi::ckGetOutputTextSb(ai,sbResponse) Debug CkStringBuilder::ckGetAsString(sbResponse) ; 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... ; json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAi::ckExportConvo(ai,conversationName,json) CkJsonObject::setCkEmitCompact(json, 0) Debug CkJsonObject::ckEmit(json) ; 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. 🏔️" ; } ; ] ; } ; ] ; } CkAi::ckDispose(ai) CkStringBuilder::ckDispose(sbResponse) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.