Showing posts with label API Management. Show all posts
Showing posts with label API Management. Show all posts

Wednesday, February 20, 2019

Describing Enterprise Artificial Intelligence: Platform as a Service With Current AI Infrastructure



If I will talk about the Enterprise AI, then it is hard to think of an application that doesn’t use a database. If you see from mobile to web to the desktop, every modern application relies on some of a database. Some apps use flat files while others rely on memory or NoSQL database.

If I will talk about the traditional enterprise applications, then they interact with large database clusters running Microsoft SQL, Oracle etc. The fact is that every application needs it.

Like databases, Artificial Intelligence (AI) is moving towards becoming a core component of modern applications. In the coming months, almost every application that we use will depend on some form of AI.

Enterprise AI simulates the cognitive functions of the human mind — learning, reasoning, perception, planning, problem solving and self-correction — with computer systems. Enterprise AI is part of a range of business applications, such as expert systems, speech recognition and image recognition.

Figure 1


1. Start Consuming Artificial Intelligence APIs

This approach is the least disruptive way of getting started with AI. Many existing applications can turn intelligent through the integration with language understanding, image pattern recognition, text to speech, speech to text, natural language processing, and video search API.

Let’s look at a concrete example of analysing the customer sentiment in a customer product requirement demo session. Almost all the Customer calls to the service team are recorded for random sampling.

A supervisor routinely listens to the calls to assess the quality and the overall satisfaction level of customers. But this analysis is done only on a small subset of all the calls received by the customers to the service team. This use case is an excellent candidate for AI APIs. Each recorded call can be first converted into text, which is then sent to a sentiment analysis API, which will ultimately return a score that directly represents the customer satisfaction level.

The best thing is that the process only takes a few seconds for analysing each call, which means that the supervisor now has visibility into the quality of all the calls in near real-time. This approach enables the company to quickly escalate incidents to tackle unhappy customers and rude customer service agents.From CRM to finance to manufacturing domains, customers will tremendously benefit from the integration of AI. There are multiple AI platforms and API providers like (With link):


2. Build and Deploy custom AI models in the Cloud

While consuming APIs is a great start for AI, it is often limiting for enterprises.

We have seen the benefits of Integrating Artificial Intelligence with applications, customers will be ready to take it to the next level.

This step includes acquiring data from a variety of existing sources and implementing a custom machine learning model. It requires creating data processing pipelines, identifying the right algorithms, training and testing machine learning models and finally deploying them in production.

Similar to Platform as a Service that takes the code and scales it in the production environment, Machine learning as a service offerings take the data and expose the final model as an API endpoint. The benefit of this deployment pattern lies in making use of the cloud infrastructure for training and testing the models. Customers will be able to spin up infrastructure powered by advanced hardware configuration based on GPUs and FPGAs.

Platforms that offers Machine Learning as a Service:

3. Run Open Source AI Platforms On-Premises

The final step in AI-enabling applications is to invest in the infrastructure and teams required to generate and run the models locally. This is for enterprise applications with a high degree of customization and for those customers who need to comply with policies related to data confidentiality.

If ML as a Service (MLaaS) is similar to PaaS, and running AI infrastructure locally then it is comparable to a Private Cloud. Customers need to invest in modern hardware based on SSDs and GPUs designed for parallel processing of data. They also need expert data scientists who can build highly customized models based on open source frameworks. The biggest advantage of this approach is that everything runs in-house. From data acquisition to real-time analytics, the entire pipeline stays close to the applications. But the flipside is in the OPEX and the need for experienced data scientists.

Customers implementing the AI infrastructure use one of the below open source platforms for Machine Learning and Deep Learning:

If you want to get started with AI, explore the APIs first before moving to the next step. For developers, the hosted MLaaS offerings may be a good start.Artificial Intelligence is evolving to become a core building block of contemporary applications. AI is all set to become as common as databases. It’s time for organizations to create the roadmap for building intelligent applications.

AI Data evolutions like Data Processing and Neural Networks.

Now in present time we are feeding loads of data to the computer, so the computer will learn about Deep learning technologies and the reason for behind this to take AI Initiative.

Neural networks process information in a similar way the human brain does. The network is composed of a large number of highly interconnected processing elements (neurons) working in parallel to solve a specific problem. Neural networks learn by example to solve complex signal processing and pattern recognition problems, including speech-to-text transcription, handwriting recognition and facial recognition.

Data processing is, generally, “the collection and manipulation of items of data to produce meaningful information.” In this sense it can be considered a subset of information processing, “the change (processing) of information in any manner detectable by an observer.”

AI data processing is the need for high-quality data. While data quality has always been important, it’s arguably more vital than ever with AI initiatives.

In 2017, research firm Gartner described a few of the myths related to AI. One is that AI is a single entity that companies can buy. In reality, it’s a collection of technologies used in applications, systems and solutions to add specific functional capabilities, and it requires a robust AI infrastructure.

Another myth is that every organization needs an AI strategy or a chief AI officer. The fact is, although enterprise AI technologies will become pervasive and increase in capabilities in the near future, companies should focus on business results that these technologies can enhance.

Conclusion

In, the Conclusion I would say everyone has to use the Artificial Intelligence Applications and as we found that many existing applications can turn intelligent through the integration with language understanding, image pattern recognition, text to speech, speech to text, NLP and video search API.

As we have seen earlier a supervisor can do the Random Sampling at the time of Customer Product Requirement demo session. So, what supervisor wants to listen in the last about the customer satisfaction and how better we can use the AI APIs to convert the call into text for the sentiment analysis. As, I have mentioned above in this use case we can definitely find out the score directly what is the satisfaction level of customer.

So, with the help of AI APIs we can easily understand the customer problems and give a better product to them for their use.

As, I have mentioned above for the same that we have to build and deploy the custom AI models in the cloud and why it is more useful and beneficial for the customers.

So, if I will define why is it more useful and beneficial as we have seen above the AI APIs will take to the customer to the next level. AI APIs will acquires data from variety of sources and help in to create data processing pipelines and identifying the right algorithm and deploy in production environment.

So, in the last I would say use the AI APIs applications to reduce the pain of customer and help them to reduce the complexity and make the process more effective with the help of AI APIs.

Wednesday, February 21, 2018

How to download attachments outside salesforce

Many times we were asked from various social media platform including Linkedin, Twitter, Pinterest but not limited to tech forums like Salesforce Stack ExchangeStack Overflow for a Salesforce app to download attachments. I remember one question from a user where he posted asking: “Is there a possibility of getting associated attachments of opportunities, quotes to other teams that are outside Salesforce?” In other words, for the teams who are not the users of Salesforce, but are working for the same company.
The answer is yes. Recently DBSync has released an app which, when installed on a specific user instance of Salesforce, can download the attachment of any standard or custom object of Salesforce to a designated folder of  FTP or SFTP or FTPS server.

In this article, I would be demonstrating how to download the file to a designated file path of an FTP server using DBSync Salesforce package for downloading attachments.  To do so, you must have the latest package of the app installed on your Salesforce instance and follow these three steps.

Step 1: Add a Connector tab within Salesforce
Once after you login to your Salesforce Instance, you should click on the “All Tabs” icon located on the Menu Bar, which will open the below screen. Follow the below listed steps to add the Connectors Tab to your view in Salesforce. By doing so will ensure quick access of the configuration screen for FTP connector from Salesforce menu.
  • Click on “Customize My Tabs” button located on top right corner of the All Tabs page.
  • Choose the App from the Custom App drop down to add to the selected app.
  • From the Available Tabs combo box , select the Connector Tab and Click Add as shown in the image #1.
  • This action will move the Connectors to Selected Tabs combo box
  • Now Hit the “Save” button that will show up connector tab on the Menu of your Salesforce instance.



Image #1

Step 2: Setup the FTP connection parameters from DBSync Connector tab
The Connectors tab is the functionality from where you can set up your desired FTP \ SFTP \ FTPS connection so that the attachments get downloaded. To set up the FTP parameters, click on Connectors tab will open up the FTP\FTPS connector settings page as shown in the following image #2.



Image #2

  • Click on Icon  adjacent to FTP label from Connector combo box, which will show up it’s connection parameters.
  • Click on the Edit button from the FTP Connection combo box as shown in the image i.e. on the right hand section which will make the fields editable.
  • Now Input Field FTP Host, FTP Port, FTP Username , FTP Password which are indicated by red * (Mandatory fields to save the connection parameters) and hit Save to save the connection parameters.
  • If you would like to change the FTP to FTPS, you can do so by choosing the FTPS value from the field “FTP Type” and Save the connection parameters.
Similarly, you can connect to any FTPS or SFTP host server so as to download the attachments directly to the saved host from the connectors screen of the package.

Step 3: Direct API
Alternatively if you want to use the API method to access the file, and download it to the designated FTP server, you can use this sftofilesytem API call to connect with an Salesforce instance and an FTP server, and pass a query to download the file. Try the API using the following link: http://api.mydbsync.com/api/api-docs/v1/sftofilesystem
The below is the sample call from the endpoint. This would make the API call more predictable for the reader.

curl -X POST –header ‘Content-Type: application/json’ –header ‘Accept: text/html’ -d ‘
{
“sfConfig”:{
“username”:”john@avankia.com”,
“password”:”@test123″,
“securityToken”:”fbEw74CxeC8kcxLK2zUnAlcp3″,
“endpointURL”:”string”},
“targets”:[{
“host”:”account.avankia.com”,”port”:”21″,
“filesystemType”:”ftp”,
“username”:”anil.b@avankia.com”,
“password”:”123456″,
“folder”:”testFiles”,
“bucket”:””,
“targetFileName”:””,
“region”:””
}],
“queryToTheAttachment”:”select Name,Body from attachment where id = ’00P2800000lT3mq”

}’

Conclusion
As explained in this article, I have saved the connection parameters to an FTP server containing the ip 107.180.12.272 so whenever a file is attached in the Salesforce, the same file gets downloaded to the FTP host. Upon which any team outside Salesforce can access the file just by logging to FTP server. Moreover, you also have the ability to define the directory structures and pass them from FTP File Location for all the files to download to defined path.