stanfordnlp / dspy

DSPy: The framework for programming—not prompting—foundation models
https://dspy-docs.vercel.app/
MIT License
16.53k stars 1.27k forks source link

Any potential ideas on what contributions/improvements can be made? #324

Open vaventt opened 7 months ago

vaventt commented 7 months ago

Hi there! I decided to open an issue, because didn't know where can I find a better place to chat with DSPy developers. I have heard about DSPy two month ago and really liked the idea about automatic prompt engineering even though still hadn't an opportunity to learn about all DSPy modules and capabilities. I'm currently pursuing my Master's degree in Ukraine and looking for some interesting topics to make it's my master thesis and protect it.

So my main question is that does someone have any ideas with their more in-depth knowledge about DSPy what can be done/imporved in my next 9 month of writing and coding my master thesis? For example I have seen Chain-of-Thought module in DSPy, is building Graph-of-Thought module a good idea? Or maybe try to build another module or several of them or improve somehow on existing ones? If my code would be enough quality than I could also create a PR with my work that I have done and adding it to the DSPy repo. I would be very grateful for some ideas, propositions, views related to this.

okhat commented 7 months ago

Hey @vaventt ! Thank you for opening this issue. Yes there are many features and experiments that we need help with. Graph of Thoughts is suitable but I’m not a fan currently because it tends to be a very expensive approach? That’s my uneducated impression. Supporting complex agents and optimizing them is one direction. Another direction is AutoDSPy, where it can create examples and metrics for any program automatically so people can optimize without having to get any data. What are your current thoughts?

vaventt commented 7 months ago

@okhat Yes, I agree with you about the Graph of Thought substantial drawback, AutoDSPy sounds interesting actually and about supporting complex agents, you mean agents like what LangChain has module agents, but in case of DSPy there will be no hardcoded prompts for the agents to do different actions like trigger Google API search or other tools?

okhat commented 7 months ago

That's right! I was thinking less of LangChain (and more of agents from the recent literature) but actually we can see what's most exciting in LangChain these days.

Btw DSPy has ReAct so that could be a place to start. ReAct right now is not as general as I'd like to be, e.g. see recent issue where they had to make some edits to make it work with new tools: #276

okhat commented 7 months ago

Another interesting direction: #314

JamesScharf commented 7 months ago

@okhat I'd like to extend DSPy to support other kinds of agents. There seem to be a bunch of new methods out there--do you have any thoughts on what might be best to pursue?

okhat commented 7 months ago

@JamesScharf awesome that’s a fun direction, what’s an agent, if you found interesting recently

JamesScharf commented 7 months ago

SayCan is quite neat. I think it might require adding some additional probability utilities to DSPy though.

okhat commented 7 months ago

Maybe something text-only for a start?