![]() |
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.