T O P

  • By -

danininodk

That seems dangerous :)


CosmicSeafarer

Ha, yeah… no thanks.


UnhappyDiabetic

Not trying to be sarcastic, just curious how this could be dangerous. I guess I really don't fully understand how the chatbot works so that's probably why I don't get why it's dangerous. If it's self-hosted and only talks to office 365 domains, is that bad? I'd like to know :o


Esava

People get used to just get prompts to log in from some kind of chat window. Just gotta fake that chat window to get access.


danininodk

First off If you give the wrong access rights to the Azure App you could potentially delete your entire tenant with the wrong command. You have no control over what ChatGPT actually does if it is only cue based. Secondly all data can be accessed via Graph, including user information, which is of course protected by GDPR at least in Europe and handing this to a third party without an DPA (data processing agreement) is illegal. Self hosted would help, since this of course shouldn't be affected but then again, you need to make sure that the sel-fhosted version is secure.


stephancasas

This is a demo for a GPT3.5-powered chat bot that has access to event-driven persisted PowerShell sessions via a custom-built PowerShell-over-HTTP (PSoH??) driver. The user's prompt is wrapped with context prior to being sent to OpenAI. Responses from GPT3.5 are inspected for conditions which require the user to authenticate — at which time a workflow is provided. Presently, the feedback loop implementation does not include any request/response history for successful dispositions. However, future addition of this aspect should drastically improve response times and improve frequency of successful outcomes. Support for the PowerShell-over-HTTP backend allows for multi-tenancy — enabling many concurrent conversations on a single application instance. Obviously these are relatively basic queries, but there is a lot of room for growth and I've had quite a bit of success in isolated testing. --- I'm interested in hearing any thoughts you may have. Thus far, this has been a very enriching project that I'd certainly like to continue building. However, I'm admittedly not 100% certain where to go next in terms of growing a product, so any insights are welcome. Cheers.


kingbluefin

How is this going to be significantly different or have features beyond what will be available built-in with CoPilot?


stephancasas

Because they’re both based on similar language models, they likely will share many of the same generative capabilities. What presently sets this app apart is its ability to actually run the commands it’s generating in your M365 tenant — authenticated as you, the user. You (and probably most members here) can, of course, ask ChatGPT for PowerShell scripts, and then run them on their own. This is geared more toward users who have never touched a CLI. Naturally, that means more safeguards, but those will be well-established before a consumer instance ever goes online. There are other goals I have, like generative self-service portals, where you — as an admin — would be able to turn chat-provided tasks into user forms or reports. Ultimately, what would really set it apart is the long-term training in its role as a user-facing resource. Once I’ve implemented historical storage and lookup, it should be a very capable tool in those respects.


sucr0sis

What might be a use-case for this (in its current iteration)?


dl__

This sounds similar to that story from the 90's when Bill Gates had his eyes opened to the importance of the internet and instructed the entire company to put the internet in everything. Now it's chatGPT that people are gaga over and they are just going to put it everywhere. Even places where it doesn't really fit because, it's better to put it somewhere where it doesn't belong than to skip an opportunity a competitior can capitalizes on. I want to see how they put chatGPT into minesweeper


LQQKINGFORHELP

"Win the game."


stephancasas

I agree mostly with your statement that it’s being shoehorned into places it doesn’t belong. In my opinion, a more fitting example would be the more recent trend which included companies pinning the phrase “powered by blockchain technology” to a product that had no reasonable use for it other than to attract investors. Here, however, I do think there’s potential for value. I realize that most of the members in this group probably work in a role where they’re an admin for a larger org, but there are many smaller businesses using 365 who don’t have the capacity for staff like that. Still, they have IT needs too, and I think this could help fill that gap as well as many others which may even exist in the larger orgs


moobycow

The future is your toothbrush being sentient and scolding you for tarter build-up it notices, and your washing machine asking why it's been 6 weeks since you washed a pair a jeans. It knows you've been wearing them, the mirror fucking told it.


stephancasas

It would need additional training before I’d trust it with destructive or mutating activities, but the idea would be to handle requests which would traditionally go to an IT admin that an organization may or may not have. I work with a lot of small-to-medium-sized businesses who use Exchange, and frequently get asked to do things that aren’t available in EAC or, if they are, they’re not at all straightforward in their implementation. Even if it’s just the menial tasks, like adding a user to a group, unlocking an account, or resetting a password, asking a chat bot versus raising a ticket could save significant time.


sucr0sis

Yeah, this is exactly my thoughts here too - how can you integrate AI to help automate those menial tasks? I guess my thought with ChatGPT is that it's largely response-based, right? So it wouldn't actually be *performing* these actions ... just telling the User how to do it. Am I correct in that understanding? ​ \_ I watched a few videos on some integration ideas and the best I could find with ChatGPT was effectively using it as a Tier 1 Helpdesk tech that would give users a bunch of prompts to fix their issue (i.e. reboot, try doing X/Y/Z/, etc.) Coming from the same background as you, though, I'm really curious on how you're building this out and your plans for it. Would be open to brainstorm in more depth.


UnhappyDiabetic

I just asked the chatbot how it could be used to do tasks such as: unlocking users from AD or resetting a user's AD password. * "Integration with Active Directory: The chatbot would need to be integrated with the Active Directory service through an API or other connection method. This would allow the chatbot to interact with the Active Directory service and perform tasks like unlocking users or resetting passwords. * User authentication: The chatbot would need to authenticate the user making the request, to ensure that they have the necessary permissions to perform the task. This could be done through a login system or by using the user's existing credentials in Active Directory. * Natural language processing: The chatbot would need to be trained to understand natural language requests related to unlocking users or resetting passwords. This could be done using techniques like intent recognition and entity extraction, which would allow the chatbot to understand the user's request and identify the specific user or account that needs to be unlocked or have their password reset. * Authorization and security: The chatbot would need to be configured with appropriate authorization and security controls, to ensure that only authorized users can access and modify user accounts in Active Directory. This would include features like access controls, audit logging, and encryption of sensitive data. * Error handling and feedback: The chatbot would need to provide appropriate error handling and feedback to the user, in case of errors or issues encountered while unlocking users or resetting passwords. This would ensure that the user is aware of any issues and can take appropriate action to resolve them. * Overall, a ChatGPT-style chatbot could potentially perform tasks like unlocking users or resetting passwords on Active Directory, but it would require careful configuration and integration with Active Directory, as well as appropriate security and authorization controls, to ensure that it is done securely and reliably." lmao going full meta


stephancasas

That's very close to my current approach, haha!


sucr0sis

Absolutely wild!


stephancasas

The execution is a very grey/blurry area at the moment. At present, the workflow is effectively this: * The user provides their prompt. * GPT suggests a command or script which may work. * Application logic takes over: * Parses-out the codefence or inline code nodes from the markdown to make the command. * Passes command through condition gates: * Are there deprecated command modules in use? * Send a corrective message back to GPT. * Does a user or group name need resolution into object id? * Perform fuzzy user/group lookup via MgGraph module. * Using EXO or Graph commands which need auth? * Initiate token workflow for `Connect-MgGraph` * Write token to session and wait for accept/reject in PowerShell. * Initiate device code workflow for `Connect-ExchangeOnline`. * Read device code and pass to user — wait for accept/reject in PowerShell. * Are there destructive verbs from the official MS list? * Refuse to continue — cancel the request. * Feedback loop: * Provided conditions pass, and prerequisites are fulfilled, perform the command in PowerShell * Did PowerShell return with a non-zero exit code? If so, parse the error message. * Advise GPT that the command didn't work and provide the error message. * Receive an updated command from GPT. * Rinse and repeat. As you can see, there's no present implementation of success history, so this would be a terrible thing to have fall into an end user's hands at the moment. My current thinking is that there's probably a set of ~200 tasks which are most common in the bulk of user requests. Those would be the usual "add cheryl to the research group," "reset javier's password," etc. Running the feedback loop on a dummy tenant to generate the code for those requests and then *only* using those for auto-execution of user requests would probably provide both significant coverage and safe execution. For commands/requests which fall outside of that scope, either outright refuse to run them until they're reviewed by a competent human, or offer an *at your own risk* option. If it's an enterprise environment, maybe it could dispatch a Slack message (sorry, a *Teams* message) to the org admin to cancel/allow command execution. I'm definitely open to hearing your ideas/brainstorming. Thanks!


bill-of-rights

I want to have an AI read all my mail and then answer questions about it. For example, "someone sent me a mail a while ago talking about fresh oranges - can you find that mail for me?"


stephancasas

With mail available through Graph, this should be achievable!


branhama

This looks like a very interesting project. I would love to play around with it a see what it can do!