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”

Edit 3: My public board for tracking progress

      • water@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        7 days ago

        Can the user supply their own base_url / api_base, to point to their own OpenAI-API compatible endpoint?

        • Maxim-fin@lemmy.mlOP
          link
          fedilink
          arrow-up
          4
          ·
          6 days ago

          No, not without substantial code update. But it is a good idea to break a vendor lock.

          • vala@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            2
            ·
            3 days ago

            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.

            • Maxim-fin@lemmy.mlOP
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              2 days ago

              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.

    • Maxim-fin@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      6 days ago

      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