I made a node.js-based “Deep Researcher” web app. It searches internet and creates structured academic-style cited reports based on user’s prompt. One can nudge the app to search exclusively through scholar sources with science-related keywords.
The app requires your own api key to run OpenAI’s LLMs and the web search tool. The LLM vendor can easily be changed. The search will be changed to “Tavily” if the corresponding api key is provided
Edit: added web search tool.
Edit-2: added a sentence about “Tavily”
OpenAi isn’t open source. 🤔
But my code to work with it is
Can the user supply their own base_url / api_base, to point to their own OpenAI-API compatible endpoint?
No, not without substantial code update. But it is a good idea to break a vendor lock.
How did you design this in a way that it would require a “substantial update” to swap out the API URL? It should be as easy as setting an environmental variable. There are many LLM providers and local LLMs that support the openAI API schema.
I meant that I use OpenAI’s web_search tool for the app, changing that is not difficult but would require testing after he fact. Changing LLMs for summarizers, outliners and final report is just few lines of code, especially if the providers use OpenAI formate, and should be easy also test-wise.
I am now working on implementing “tavily” search tool in addition to web_search by OpenAI. The app will default to “tavily” when valid api key is provided by the client.
How does it compare with GPT Researcher?
I need to study the repo, but the first thing I can say is that mine is in JS.
Edit: in addition, GPT researcher uses tavily for web search and mine uses web_search tool but OpenAI