Can Dialogflow agents be created, updated and deleted (managed) 100% programmatically? - automation

I am looking to wrap a bot service in order to enable business areas to create and manage them at will with minimal technical knowledge, but meeting our strict security controls. With this in mind I need to be able to create and manage them 100% programatically.
I have been working on a prototype with Microsoft's Bot Framework, Luis and QnA Maker. Sadly though joining these technologies requires a number of manual steps, specifically:
Creating a bot in Azure (Bot Framework)
Creating a Luis Account
Joining Luis bot with Azure(the subscription management part
of the API was recently deprecated)
Creating a QnA Account
Microsoft really don't feel very joined up at all...
With this in mind I am now looking for alternatives and thus looking to see what Google are up to. I am just a bit weary of heading off in a new direction to find similar issues.
Looking briefly at the API documentation it seems I should be able to import an agent in to a project and then manage it. I imagine I could use a template to create my bots from.
Thanks for your time
Mike

Thanks for your feedback.
The way I see it, Bot Framework is more modular than other options out there. First of all, creating a LUIS and QnA account are optional and not time consuming. The average use case can be solved with less than 50 lines of code with no need to throw LUIS or QnAMaker into the mix. Why should Microsoft force you to use LUIS if you might not need it? Google uses a different approach. In my opinion, they give you most of the tools from start, like the NLP agent, so you need to understand NLP concepts even if you don't really need to use them. Most developers tend to overthink their bots and make them more complex that hey need to be.
With that said. We don't provide a way to create agents programmatically. But the process of registering your bot is very straight forward and fast. Let me know if you have any problems on this regard.
Please, take a look at our samples here:
https://github.com/Microsoft/BotFramework-Samples
They can give you a very deep knowledge on what architecture to use for different scenarios. Many times there is a simpler way to achieve the same goal and Microsoft does not try to force you to use the most advanced techniques. Most of the time you can achieve your goal with very simple and easy to maintain code.
Francisco

A Quick Update, in the end we went with a solution based on this idea:
https://aws.amazon.com/blogs/machine-learning/creating-a-question-and-answer-bot-with-amazon-lex-and-amazon-alexa/
I can simply create a new bot by executing cloudformation.

Related

Bugtracker - agregation and automated workflow

Intro:
I'm working for a contractor company. We're making SW for different corporate clients, each with their own rules, SW standards etc.
Problem:
The result is, that we are using several bug-tracking systems. The amount of tickets flow is relatively big and the SLA are deadly sometimes. The main problem is, that we are keeping track of these tickets in our own BT (currently Mantis) but we're also communicating with clients in theirs BT. But as it is, two many channels of communication are making too much information noise.
Solution, progress:
Actual solution is an employee having responsibility for synchronizing the streams and keeping track of the SLA and many other things. It's consuming quite a large part of his time (cca 70%) that can be spend on something more valuable. The other thing is, that he is not fast enough and sometimes the sync is not really synced. Some parts of the comments are left only on one system, some are lost completely. (And don't start me at holidays or sickness, that's where the fun begins)
Question:
How to automate this process: aggregating tasks, watching SLA, notifying the right people etc. partially or all together?
Thank you, for your answers.
You need something like Zapier. It can map different applications and synchronize data between them. It works simply:
You create zap (for example between redmine and teamwork).
You configure mapping (how items/attributes in redmine maps to items/attributes in teamwork)
You generate access tokens in both systems and write them to zap.
Zapier makes regular synchronization between redmine and teamwork.
But mantis is not yet supported by Zapier. If all/most of your clients BT are in Zapier's apps list, you may move your own BT to another platform or make a request to Zapier for mantis support.
Another way is develop your own synchronization service that will connect to all client's BTs as each employee using login/password/token and download updates to your own BT. It is hard way and this solution requires continious development to support actual virsions of client's BTs.
You can have a look a Slack : https://slack.com/
It's a great tools for group conversations
Talk, share, and make decisions in open channels across your team, in
private groups for sensitive matters, or use direct messages
one-to-one.
you can have a lot of integrations tools, and you can use Zapier https://zapier.com/ with it to programm triggers.
With differents channels you can notifying the right people partially or all together in group conversation :)
The obvious answer is to create integrations between all of the various BT's. Without knowing what those are, it's hard to say if that's entirely possible. Most modern BTs have an API and support integrations. Some, especially more desktop based ones, don't. For those you probably have to monitor a database directly.
Zapier, as someone already suggested, is a great tool for creating integrations and may already have some of the ones yo need available. I love Slack and it has an API, but messages are basically just text and unless you want to do some kind of delimiting when you post messages to its API, it probably isn't going to work.
I'm not sure what budget is, but it will cost resources to create the integrations. I'd suggest that you hire someone to simply manage these. Someone who's sole responsibility is to cross-populate the internal and the external bug tracking system and track the progress in each. All you really need is someone with good attention to detail for this, they don't have to be a developer. This should be more cost effective than using developer resources on this.
The other alternative is simply to stop. If your requirements dictate that you use your clients' bug tracking software for projects you do for them, just use their software and stop duplicating the effort. If you need some kind of central repository or something for managing work maybe just a simple table somewhere or spreadsheet with the client, the project, the issue number, the status and if possible a link to the issue in the client's BT. I understand the need and desire for centralizing this, but if it's stifling productivity, then the opportunity costs are too high IMO.
If you create an integration tool foe this, you will indeed have a very viable product. This is actually a pretty common problem.

API to IBM Rational Requirement Composer

We have been using ReqPro to a great extent by taking the advantage of the API DLLs. We basically develop .NET application and used the DLLs to store data to the ReqPro projects with great ease.
Now, we are looking at possible ways to move to RRC. For this, we need to know how we can achieve the same features.
As RRC is web based, it might have some services that can be used for such things.
The basic requirements are inserting requirements, traceabilities, history etc to RRC and retrieving the same.
Back to top
Please take a look at OSLC - this is a REST-based interface to RRC that will allow you to access and write to RRC. It may not cover all the capabilities you require - but should be a good start. http://open-services.net/ - and then look at the RM specification.
Hope that helps
anthony
p.s Another good place to cross-post this question is the forums on jazz.net - there is a specific forum for RRC.

Tool to track use of "best practices" for each of our apps

We have over 100 applications in my company and we are trying to come up with a dashboard to show which applications use continuous integration and unit testing and other best practices.
I was going to put together my own database and a small website to start tracking this but first wanted to ask if there are any products on the market that allow you to track this.
Hmm, I will just throw this :)
We have smth similar on our company, we use inside wiki for that, there are list of our software and each responsible developer can comment it, is it using Unit Testing, little documentation attached, maybe an screenshoot, class diagram, a bit of design review. You can customize it as you want. No difference where it will be, on wiki, database, whiteboard, spreadsheet, the most important think is that ppl will have possiblity to edit that, and they will use it.
I really think a custom database with a pretty front-end is your best bet. Hell, a spreadsheet would even do the trick.
Whiteboard.
$41.29 on Amazon

Is there a good way to migrate from a Mailman list to a web forum?

I have a Mailman managed list with years of history that I want to migrate into a web-based forum. Things it would be nice to do:
Keep the mailing list going for those who are used to and prefer it to a web interface, but have it integrate with the web-forum activity.
Take the web-based forum posts, and send them out to the mailing list.
I have run sites based on phpBB, Drupal, Simple Machines, etc., and am able to do a little bit of coding if that was what was required to integrate some package into Mailman, or replace it entirely. But I'm unaware of what is available, commercial, or open-source, that could accomplish this. I am also open to replacing Mailman, if the candidate package can perform its functions reasonably well and integrate well into its own forum.
Even if the phpBB/mail2forum option is using the older version, it is a nice option. OpenSceneGraph just implemented this for their long running mailing list, and it seems to work flawlessly. It's the only option I've seen that allows for forum posts and mailing list messages to work very seamlessly, and has the means to allow for tags to separate forum subjects from mailing list posts, etc.
Their v2 dev works with phpBB3, too - so if you're willing to live on the bleeding edge, that might be an option.
So far, here's what I've looked into:
Drupal, with its Mailmanager and Listmanager modules, though I've been having trouble turning on the IMAP feature so it can talk to my mail box (clients can access it fine), and the Drupal's forum module isn't really up to the feature level I'd like.
PhpBB, mail2forum, though it looks like currently it only works with the older phpBB version, so not really an alternative for me.
The only one that seems to really "work" is FUDforum and its maillist.php module, which integrates directly at the procmail level, nice. I can take all my Mailman archives and "formmail -ds" them directly into a chosen forum.
I've started a bounty for this issue, I'm looking for something, even commercial, that really integrates the email interface into the forum experience for the end users, particularly the handling of accounts. With FUDforum I'm still going to have to resolve the separation of the Mailman accounts from the FUDforum accounts.
I ran across this on the web: http://mail2forum.com/
I haven't used it but it looks promising and has both a 1.2 stable version and a 2.0 development version, so it's not a derelict SourceForge project with 1 developer and no commits, or anything :)
Theoretically my org may use it at some point in the next year or two, but we have to finish our own Listserv to Mailman transition first.
Well, based on what you've said (first, that you're able to do a bit of coding and second that FUDForum would work for you except for the issue of maintaining list membership, have you considered that:
Mailman stores its user information in a plain text file and
FUDForums stores its user information in a single sql table
The obvious solution would be to declare one of these master (probably FUDForum, since it looks as if it holds a proper superset of the Mailman info) and have a little script/cron job that copied changes from the master to the slave.
A passing note -- neither of these systems appears very secure (actually, they both look leaky as all get out) and combining them may well reduce the collective security even further. If you are doing anything even remotely confidential you should rethink your goals, and in any case you should take appropriate steps to protect your system from attack.
I know an SME which switched from the mailing list to phpBB!
If you want to keep your mailing list, you have also to maintrain it.
Finally the people I know diabled the mailing list service.

Access Control Lists & Access Control Objects, good tutorial?

we're developing a web app to cover all aspects of a printing company from finances, to payroll, to job costing. Its important to be able to control who can access what parts of these applications. Don't want a line employee giving himself a raise, etc...
I've heard of the concept of ACL & ACO, but haven't found a good example that we could adapt to our project.
Anyone know where I can find good information to work from?
A brief rundown on ACLs, where they should be used and how they should be structured and implemented for various applications and user levels can be found here:
LINK
I've had to implement that type of security a couple of times. Unfortunately I don't know of any really good articles that provide examples. My implementations were mainly piecing together the parts through trial and error.
However, I did come across this link on MSDN:
http://msdn.microsoft.com/en-us/library/52kd59t0(VS.71).aspx
It has some of the concepts.
After my original post, I did some more research. I found this article:
http://www.aspfree.com/c/a/C-Sharp/Implementing-Role-Based-Security-using-CSharp/
it seems pretty promising, I didn't go through all the details, but it at least guides you through the high-level topics.
If you're using .NET/Windows you might want to look into Windows Authorization Manager (AzMan). There are support for AzMan in Enterprise Library but there are other ways of using it as well.
http://msdn.microsoft.com/en-us/library/ms998336.aspx
http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsAuthorizationManager.html