-
Notifications
You must be signed in to change notification settings - Fork 589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement a tool to query ORAssistant #6226
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Why can't this run locally as an add-on rather than sending requests over the internet? |
If the user chooses to the application locally, they'll have to follow instructions on ORAssistant's README, spin the backend server up, and use the Currently, |
Signed-off-by: Palaniappan R <[email protected]>
Is there a data control plan or disclaimer if users are sending data over the internet? GDPR may even come into play here. |
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some nits, no comments on code end
docker/Dockerfile.builder
Outdated
@@ -18,4 +18,4 @@ WORKDIR /OpenROAD | |||
|
|||
ENV PATH=${LOCAL_PATH}:${PATH} | |||
|
|||
RUN ./etc/Build.sh -compiler=${compiler} -threads=${numThreads} -deps-prefixes-file=${depsPrefixFile} | |||
RUN ./etc/Build.sh -compiler=${compiler} -threads=${numThreads} -deps-prefixes-file=${depsPrefixFile} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is there a change here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reverted.
@@ -579,7 +583,7 @@ _installDebianPackages() { | |||
unzip \ | |||
wget \ | |||
zlib1g-dev | |||
|
|||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
stray change?
src/ora/src/Ora.tcl
Outdated
@@ -0,0 +1,43 @@ | |||
# Copyright (c) 2024, The Regents of the University of California |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe Copyright 2025?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've updated it now.
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
@palaniappan-r no further comments from me, pending @maliberty and @vvbandeira review. |
On second thought, I think we need to mark this as draft because the permalink is not available. I will discuss more with @dralabeing and @vvbandeira. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no README for this
src/ora/src/Ora.cc
Outdated
hostUrl | ||
= "https://bursting-stallion-friendly.ngrok-free.app/graphs/" | ||
"agent-retriever"; | ||
localDirPath = std::string(getenv("HOME")) + "/.local/share/openroad"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not make a helper function to generate this path since it's used in multiple locations
src/ora/src/Ora.cc
Outdated
if (!localDir) { | ||
logger_->info(utl::ORA, 112, "Creating ~/.local/share/openroad directory."); | ||
std::string mkdirCmd = "mkdir -p " + localDirPath; | ||
int ret = system(mkdirCmd.c_str()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wouldn't it be better to use: https://en.cppreference.com/w/cpp/filesystem/create_directory instead of generating a system call (something I think we could avoid)
} | ||
} | ||
|
||
void Ora::setConsent(const char* consent) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since you are checking for just a "y" for yes, I think you need to verify that this consent string matches your expectations.
src/ora/src/Ora.tcl
Outdated
} | ||
|
||
proc set_consent { consent } { | ||
puts "Setting ORAssistant consent to yes." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is I said "no"?
src/ora/test/regression_tests.tcl
Outdated
record_tests { | ||
set_bothost1 | ||
set_consent1 | ||
askbot1 | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all the testing needs to be moved to the CTest as this was removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've moved the tests, but still have to figure out a way to start the python server (to mock API responses for tests). Previously, I started the Python server within the regression bash script itself. Could you suggest ways to handle this directly in CTest?
src/ora/src/Ora.tcl
Outdated
ora::set_bothost $hostUrl | ||
} | ||
|
||
proc set_consent { consent } { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set_consent
is an awfully generic name, it might be better as set_ora_consent
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've moved this to ora_init
.
The request for consent is a bit better than the state before, but there are still a few things I would want to see change:
|
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
Signed-off-by: Palaniappan R <[email protected]>
The |
That doesn't really make sense - it shouldn't need to ask for consent if not connecting to the OpenROAD web-hosted version. It could be connected to another web-hosted version, in which case, it shouldn't display the message. Not only because the user wouldn't need to consent, but also the other web-hosted version may not have a privacy policy and so the consent message shouldn't claim so. What about the other concerns? |
When the As for the consent management, it is being handed with the I've explicitly mentioned that only the data typed-in will be sent outside the application in the consent message as well. I hope this clears your concerns, please let know if there's anything else to be addressed. |
Ok thanks, that's much clearer. I don't think using a local copy should require consent to be set to "n". If a user wants to switch between web and local they should be able to without having to constantly grant and revoke consent. My only other concern would be a version number for the consent to make sure that in the future if the requirements ever change, the user can be reprompted. Something like
then if version 2 comes along which requires different permissions, the user will need to re-consent. |
Implemented the
askbot
andset_bothost
commands under theora
tool. They can be used to make queries to ORAssistant, a LLM based conversational assistant for OpenROADaskbot
This command takes an argument and passes it as a query to the hosted ORAssistant backend, by making a POST request using the
libcurl
library.ora_init
The
ora_init
command sets up user consent for using the ORAssistant and configures the host URL (if a local version is preferred).