#include #include "ANSUtilities.h" #include "ANSLLM.h" #include "CkCrypt2.h" #include #include #include #include #include #include #include #include void EncrypyionExample(void) { std::string encryptedString = ""; //std::string inputKey = "mikael.holmstrom@anscenter.comAA"; std::string inputKey = "sale@anscenter.com.au"; std::string inputString = "https://anspushnotification.s3.ap-southeast-2.amazonaws.com/Events/20250113_154146_221140160_643.jpg"; AESEncryptionCpp(inputString.c_str(), inputKey.c_str(), encryptedString); std::cout << "Encrypted String:" << encryptedString << std::endl; //std::string NewEncryptionString = "DRqCU8fsgYZcwyjMdMwnEDStSVk13htAIznm1iee8ri0js1RJqN4/q7dMtK5HyQcOWPnQThN8971lFZwRB2baMOxhvyB/xyvP3mzjvPoTH98kvO1UxBltbi0xrlTKIO8xg1i7Iw07zhmSJzxRNz18A=="; std::string decryptedString = ""; AESDecryptionCpp(encryptedString.c_str(), inputKey.c_str(), decryptedString); std::cout << "Decrypted String:" << decryptedString << std::endl; } int Test() { ANSCENTER::ANSUtilities* Handle; int result = CreateANSUtilityHandle(&Handle, ""); std::cout << "Intialisation:" << result << std::endl; std::string arnTopic = ""; //CreateAWSSNSTopicCpp(&Handle, "MyTopicFromC",arnTopic); //std::cout << "Topic ARN:" << arnTopic << std::endl; // delete the topic //arnTopic = "arn:aws:sns:ap-southeast-2:654654292871:MyTopicFromC";//arn:aws:sns:ap-southeast-2:654654292871:MyTopicFromC //bool deleteResult= DeleteAWSSNSTopic(&Handle, arnTopic.c_str()); //std::cout << "Delete Topic:" << deleteResult << std::endl; //+34623225024 // Send message std::string messageId = ""; bool SendMessageResult = SendMessageToPhoneNumberCpp(&Handle, "+34623225024", "Hi Mr Mikael Holmstrom, this is the test message from ANS AI Box", messageId); std::cout << "Send Message:" << SendMessageResult << std::endl; std::cout << "Message ID:" << messageId << std::endl; } int uploadFileToGoogleStorage() { ANSCENTER::ANSUtilities* Handle; int result = CreateANSUtilityHandle(&Handle, ""); std::cout << "Intialisation:" << result << std::endl; std::string googleTokenJsonfile = "C:\\Projects\\ANSVIS\\Documentation\\ImageStorage\\gcs_uploader_key.json"; std::string bucketName = "ansaibox-image-storage"; std::string objectName = "public-images/myTest2.jpg"; cv::Mat image = cv::imread("C:\\Programs\\DemoAssets\\NV\\test.jpg"); // Read json file to text first std::ifstream file(googleTokenJsonfile); // Open the JSON file if (!file) { std::cerr << "Error: Cannot open file!" << std::endl; return 1; } std::stringstream buffer; buffer << file.rdbuf(); // Read file content into buffer std::string jsonString = buffer.str(); // Convert buffer to std::string std::cout << "JSON Content:\n" << jsonString << std::endl; bool authResult = AuthenticateGCS(&Handle, jsonString.c_str()); std::cout << "Authenticate:" << authResult << std::endl; bool uploadResult = UploadImageToGCS(& Handle, bucketName.c_str(), objectName.c_str(), image); std::cout << "Upload Image:" << uploadResult << std::endl; ReleaseANSUtilityHandle(&Handle); } void SendEmailExample(void) { std::string smtpServer = "smtp.office365.com"; int smtpPort = 587; std::string smtpUser = "noreply@anscenter.com"; std::string smtpPassword = "PW";// std::string subjectContent = "This is the test"; std::string bodyHTMLContent = " Test Email "; std::string bodyTextContent = ""; std::string fromEmailSender = "noreply@anscenter.com"; std::string toEmails = "nghia.nguyen@anscenter.com;kate.truong@anscenter.com"; std::string ccEmails = "support@anscenter.com;sale@anscenter.com"; std::string bccEmails = "admin@anscenter.com"; int resultSent = SendEmail(smtpServer.c_str(), smtpPort, smtpUser.c_str(), smtpPassword.c_str(), subjectContent.c_str(), bodyHTMLContent.c_str(), bodyTextContent.c_str(), fromEmailSender.c_str(), toEmails.c_str(), ccEmails.c_str(), bccEmails.c_str()); std::cout << "Send Email Result:" << resultSent << std::endl; } int ANSLLMTest() { std::cout << "Running ANSLLM Test..." << std::endl; ANSCENTER::ANSLLM ansllm; std::string licenseKey = ""; std::string apiKey = "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"; // Initialize with license key ansllm.Initialize(licenseKey); ansllm.SetLLMProvider("openai"); ansllm.SetApiKey(apiKey); //std::vector modelList = ansllm.GetModelList(); //std::cout << "Available Models:" << std::endl; //for (const auto& model : modelList) { // std::cout << model << std::endl; //} // Set model ansllm.SetModel("gpt-5.2"); ansllm.CreateConversation("You are a helpful assistant.", "Respond only with markdown.", "TestConversation"); ansllm.InputAddText("Say Hello."); std::string response = ansllm.Ask("text"); std::cout << "Response from ANSLLM: " << response << std::endl; // ask others std::string prompt2 = "Please tell me a person whose name is Sophie"; ansllm.InputAddText(prompt2); std::string response2 = ansllm.Ask("text"); std::cout << "Response from ANSLLM: " << response2 << std::endl; ansllm.InputAddText("Describe what you see in the following image."); ansllm.InputAddImageUrl("https://www.chilkatsoft.com/images/starfish.jpg", ""); std::string response3 = ansllm.Ask("text"); std::cout << "Response from ANSLLM: " << response3 << std::endl; return 0; } int ANSAWSTest() { std::cout << "Running ANSAWS Test..." << std::endl; ANSCENTER::ANSAWSS3* awsHandle = nullptr; // Initialize AWS S3 handle if (CreateANSAWSHandle(&awsHandle,"") != 1) { std::cerr << "Failed to create AWS S3 handle." << std::endl; return 1; } std::string baseDomain = "amazonaws.com"; std::string bucketRegion = "ap-southeast-2"; std::string serviceName = "s3"; std::string bucketName = "anspushnotification"; int port = 443; bool bTls = true; bool autoReconnect = true; // Connect to AWS S3 int awsPath = 0; if (ConnectANSAWSHandle(&awsHandle, baseDomain.c_str(), bucketRegion.c_str(), serviceName.c_str(), port, bTls, autoReconnect, &awsPath) == 0) { std::cerr << "Failed to connect to AWS S3." << std::endl; ReleaseANSAWSHandle(&awsHandle); return 1; } std::cout << "Connected. AWS path style: " << (awsPath ? "true" : "false") << std::endl; // Set authentication std::string accessKey = "AKIAZQ3DPYODSHZCECS4"; std::string secretKey = "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"; if (SetAuthenticationANSAWSHandle(&awsHandle, accessKey.c_str(), secretKey.c_str()) != 1) { std::cerr << "Failed to set AWS S3 authentication." << std::endl; ReleaseANSAWSHandle(&awsHandle); return 1; } // Upload a jpeg image to bucket std::string jpegFilePath = "E:\\Programs\\DemoAssets\\NV\\Test.jpg"; std::string objectName = "test/test.jpg"; std::string uploadedUrl; while (1) { if (UploadBinaryDataANSAWSHandle_CPP(&awsHandle, bucketName.c_str(), jpegFilePath.c_str(), uploadedUrl) != 1) { std::cerr << "Failed to upload JPEG image to AWS S3." << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); // Wait before retrying } else { std::cout << "Successfully uploaded JPEG image to AWS S3." << std::endl; break; } } std::cout << "Uploaded to: " << uploadedUrl << std::endl; //// List buckets //std::string bucketList = ""; //if (ListBucketANSAWSHandle_CPP(&awsHandle, bucketList) != 1) { // std::cerr << "Failed to list AWS S3 buckets." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //std::cout << "Buckets in AWS S3:" << std::endl; //std::cout << bucketList << std::endl; //// list objects in a bucket //std::string bucketName = "anspushnotification"; //std::string prefix = "Events/ee2ejdgefcjl7j6ruhvsjlaea/"; //std::string bucketObjectList = ""; //if (ListBucketObjectsWithPrefixANSAWSHandle_CPP(&awsHandle, bucketName.c_str(), prefix.c_str(), bucketObjectList) != 1) { // std::cerr << "Failed to list AWS S3 bucket objects." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //std::cout << "Bucket objects in AWS S3:" << std::endl; //std::cout << bucketObjectList << std::endl; //// Create a new bucket //std::string newBucketName = "my-test-bucket-a3f9d2c1w2"; //std::string bucketPrefix = "test-prefix/"; //if (CreateBucketANSAWSHandle(&awsHandle, newBucketName.c_str()) != 1) { // std::cerr << "Failed to create AWS S3 bucket." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //if (CreateBucketPrefixANSAWSHandle(&awsHandle, newBucketName.c_str(),bucketPrefix.c_str()) != 1) { // std::cerr << "Failed to create AWS S3 bucket prefix." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //// Delete the bucket prefix //std::string deleteBucketName = "my-test-bucket-a3f9d2c1"; //if (DeleteBucketPrefixANSAWSHandle(&awsHandle, newBucketName.c_str(), bucketPrefix.c_str()) != 1) { // std::cerr << "Failed to delete AWS S3 bucket." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} // Delete the bucket //if (DeleteBucketANSAWSHandle(&awsHandle, newBucketName.c_str()) != 1) { // std::cerr << "Failed to delete AWS S3 bucket." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} // Download an object from bucket //std::string objectName = "testevent/test01.jpg"; //std::string downloadFilePath = "E:\\Programs\\DemoAssets\\Images"; //if (DownloadFileStreamANSAWSHandle(&awsHandle, bucketName.c_str(), objectName.c_str(), downloadFilePath.c_str()) != 1) { // std::cerr << "Failed to download AWS S3 bucket object." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} // // Clean up ReleaseANSAWSHandle(&awsHandle); return 0; } int ANSFTechMinIOTest() { std::cout << "Running ANSFTechMinIO Test..." << std::endl; ANSCENTER::ANSAWSS3* awsHandle = nullptr; // Initialize AWS S3 handle if (CreateANSAWSHandle(&awsHandle, "") != 1) { std::cerr << "Failed to create AWS S3 handle." << std::endl; return 1; } std::string baseDomain = "https://minio.dev.ftech.ai"; std::string bucketRegion = "vn1"; std::string serviceName = "s3"; std::string bucketName = "aicamera"; int port = 443; bool bTls = true; bool autoReconnect = true; // Connect to AWS S3 int awsPath = 0; if (ConnectANSAWSHandle(&awsHandle, baseDomain.c_str(), bucketRegion.c_str(), serviceName.c_str(), port, bTls, autoReconnect, &awsPath) == 0) { std::cerr << "Failed to connect to AWS S3." << std::endl; ReleaseANSAWSHandle(&awsHandle); return 1; } // Set authentication std::string accessKey = "aicamerapush"; std::string secretKey = "88fO8Y3EpMFMG1HFCCcfCE4cWh0k5KKZ"; if (SetAuthenticationANSAWSHandle(&awsHandle, accessKey.c_str(), secretKey.c_str()) != 1) { std::cerr << "Failed to set AWS S3 authentication." << std::endl; ReleaseANSAWSHandle(&awsHandle); return 1; } // Upload a jpeg image to bucket std::string jpegFilePath = "E:\\Programs\\DemoAssets\\NV\\Test.jpg"; std::string objectName = "test1.jpg"; std::string uploadedUrl; if (UploadBinaryDataANSAWSHandle_CPP(&awsHandle, bucketName.c_str(), jpegFilePath.c_str(), uploadedUrl)!= 1) { std::cerr << "Failed to upload JPEG image to AWS S3." << std::endl; ReleaseANSAWSHandle(&awsHandle); return 1; } // List buckets //std::string bucketList = ""; //if (ListBucketANSAWSHandle_CPP(&awsHandle, bucketList) != 1) { // std::cerr << "Failed to list AWS S3 buckets." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //std::cout << "Buckets in AWS S3:" << std::endl; //std::cout << bucketList << std::endl; // list objects in a bucket //std::string bucketName = "anspushnotification"; //std::string prefix = "Events/ee2ejdgefcjl7j6ruhvsjlaea/"; //std::string bucketObjectList = ""; //if (ListBucketObjectsWithPrefixANSAWSHandle_CPP(&awsHandle, bucketName.c_str(), prefix.c_str(), bucketObjectList) != 1) { // std::cerr << "Failed to list AWS S3 bucket objects." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //std::cout << "Bucket objects in AWS S3:" << std::endl; //std::cout << bucketObjectList << std::endl; // Create a new bucket //std::string newBucketName = "my-test-bucket-a3f9d2c1w2"; //std::string bucketPrefix = "test-prefix/"; //if (CreateBucketANSAWSHandle(&awsHandle, newBucketName.c_str()) != 1) { // std::cerr << "Failed to create AWS S3 bucket." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //if (CreateBucketPrefixANSAWSHandle(&awsHandle, newBucketName.c_str(),bucketPrefix.c_str()) != 1) { // std::cerr << "Failed to create AWS S3 bucket prefix." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} //// Delete the bucket prefix //std::string deleteBucketName = "my-test-bucket-a3f9d2c1"; //if (DeleteBucketPrefixANSAWSHandle(&awsHandle, newBucketName.c_str(), bucketPrefix.c_str()) != 1) { // std::cerr << "Failed to delete AWS S3 bucket." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} // Delete the bucket //if (DeleteBucketANSAWSHandle(&awsHandle, newBucketName.c_str()) != 1) { // std::cerr << "Failed to delete AWS S3 bucket." << std::endl; // ReleaseANSAWSHandle(&awsHandle); // return 1; //} // Clean up ReleaseANSAWSHandle(&awsHandle); return 0; } int ANSLLMOllamaTest() { std::cout << "Running ANSLLM Ollama Test..." << std::endl; ANSCENTER::ANSLLM ansllm; std::string licenseKey = ""; // Initialize with local Ollama enabled ansllm.Initialize(licenseKey, true); // Set the Ollama model (must be already pulled via 'ollama pull llama3.2') ansllm.SetModel("llama3.2"); ansllm.CreateConversation("You are a helpful assistant.", "Respond only with markdown.", "TestConversation"); ansllm.InputAddText("Why is the sky blue?"); std::string response = ansllm.Ask("text"); std::cout << "Response from ANSLLM (Ollama): " << response << std::endl; // Ask another question ansllm.InputAddText("Say Hello."); std::string response2 = ansllm.Ask("text"); std::cout << "Response from ANSLLM (Ollama): " << response2 << std::endl; return 0; } int main() { ANSLLMOllamaTest(); //ANSAWSTest(); //ANSFTechMinIOTest(); //ANSAWSTest(); //ANSLLMTest(); //SendEmailExample(); //uploadFileToGoogleStorage(); // EncrypyionExample(); }