-
Notifications
You must be signed in to change notification settings - Fork 44.6k
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
Command google_search never invoked anymore #3904
Comments
Google API and custom search ID already set in .env. No errors or warnings thrown. |
Try prompting explicitly to use the google_search command. |
What do you mean? Can you give me an example Thank |
I have, and it seems to understand. Yet, the generated command is 'browse_website' instead of 'google_search'. It just keeps scraping google com homepage. |
I believe command changed to just google but it returns disabled for me. |
I'm having the same issue. AutoGPT agent is ran by this command:
which is same with document. From this environment, I found DEBUG message says it's allowed with commands without "google_search" nor "google" in it: The workaround was to run with 0.2.2 version image. |
That's what I thought. Google_search.py is still in the commands folder, but doesn't get picked up into commandRegistry. |
@yangkyeongmo added whitespace and removed escape sequences for readability
|
Any new development in this area? Or some workaround? |
@webbfly Have you tried using previous(0.2.2) version? It worked for me. |
I've noticed this issue as well. Worked for me in v0.2.2 but not since switching to stable v.0.3.0. I have both Google API Key and Search ID set in my .env but it just uses the browse_website function and not Google. Using GPT 4 API. I also checked my Google API Key results to see if any traffic was using it, and I see no traffic on my API since making the switch. |
Hi, I think the root cause is that there are two commands with the same "name" (Google Official search) (DuckDuckGo search) This causes the command registry to overwrite each other, as seen in the code snippet There are two workarounds available:
|
@benqqqq EDIT: Oops. Renaming the commands solves the conflict, but 'google_search' is coded to run DDG... which is currently broken. There should be an IF..ELSE switch to select Google if the API key is defined. Otherwise, there's nowhere for the logic to invoke 'google_official_search' whether you have an API key or not. |
is this related to #4120 (comment) |
the most flexible option is making the underlying backend configurable as part of the argument - and documenting all available options via the description string of the command, that way the LLM itself can figure out ways to progress, without you having to do a thing: Basic approach explained here: #4128 (comment) |
Ah yes, agreed. I keep forgetting we have an LLM to work with, haha. So once the naming conflict is resolved, the AI is actually doing as it's told.
Am I reading it right? |
the basic idea is to stop hard-coding stuff and instead move these things into arguments (which could use some sane defaults) - if there's a problem, the LLM can replace the default. Anyway, it does make sense to mention sane alternatives in the description string - or it will try random stuff, same applies for things like the "model" value or URL endpoints. I've been able to reduce a good amount of warnings and errors that way, simply forwarding errors and warnings to the LLM and allowing hard-coded stuff to be specified via the params of the action/command string. that being said, I do sometimes watch it trying to come up with non-existing command strings still - I suppose it would make sense to add some sort of "immutable" annotation to the string to make it obvious to the LLM that it should not tinker with some of these things Note that this approach works for a number of env/CFG settings, too - obviously, you won't want to expose your API key and have the LLM tinker with that (kinda pointless), but things like rate limit etc are all game. As long as you provide sufficient "meta information" to the LLM via the description string, it will automatically figure out stuff - here it's simply picking the right tool for the job to calculate an expression: |
@jaykayenn
to
in the safe_google_results function. Was missing the re-decoding |
Is there a workaround for people running autogpt on Docker? |
Same issue with Docker. |
Using the combination of suggestions from @benqqqq and @jonasdebeukelaer I was able to get mine running smoothly again with proper Google searches via the Google API (running in VS Code + Docker Container): 1. Renamed Duck Duck Go query name, changed Line 14 from: to
2. Added line fix, changed Line 113 from: to
Now everything running smoothly for me again. Note: I also updated my DuckDuckGo Search per discussion comments in #4120 - Not sure if that has anything to do with it as I didn't test in between the DDG update and making the other changes. But worth noting. Update DuckDuckGo Search:
|
Which Operating System are you using?
Linux
Which version of Auto-GPT are you using?
Latest Release
GPT-3 or GPT-4?
GPT-3.5
Steps to reproduce 🕹
Start a goal that's primarily searching the web
Current behavior 😯
Instead of searching Google or any other search engine, it will always 'browse website' instead. Even when the declared plan is to use search engines. Browsing the homepage of search engines and archive sites obviously yield no results.
Expected behavior 🤔
Use 'google_search' command like it used to before the latest release.
Your prompt 📝
# Search and summarize recent articles on the topic of XXX
Your Logs 📒
No response
The text was updated successfully, but these errors were encountered: