-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Controlling select_speaker using Graph Modelling Language #720
Controlling select_speaker using Graph Modelling Language #720
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #720 +/- ##
===========================================
+ Coverage 27.89% 47.08% +19.18%
===========================================
Files 27 27
Lines 3466 3466
Branches 784 826 +42
===========================================
+ Hits 967 1632 +665
+ Misses 2428 1674 -754
- Partials 71 160 +89
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Thanks. This looks really compelling. I need to dig into it more. One thing I noticed is that it selects the next speaker randomly from among the candidate outgoing edges (or did I misread that?). I would love to see this instead use some variation of the current GroupChat prompt (or similar) to select the next speaker based on the conversations. |
Hi @afourney, Glad you find it useful. A partial yes, if However, if it is not a legal transition, we would pick a random agent from the legal transitions Please feel free to review when you get some time. I'll act on the feedback tomorrow. Thanks for the review! :) |
Fantastic idea! I have thought about something similar earlier, but your implementation is much cleaner. I will take a deeper look later. |
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.
Thanks @joshkyh , I love it. Allowing selecting speaker based on the complex network would push the group chat to a higher level, enabling a more meaningful large group chat.
Do you only want to show it as a notebook example? I believe it worth to add into the code.
Thanks for the review, @sonichi. I have acted on the four feedback points and added the link to this notebook in two pages. |
Hi @joshkyh what is |
Hey @Friedensfreak, thanks for the question. In the notebook, the task was to find the total number of chocolates every agent have, which is denoted by secret. The example illustrates every agent contributing towards the problem but inter-team transitions only happen via the team leaders. Outside of this example, there is no need to use the secret attribute. |
will this be codified? Sharing code override examples is not the way forward imo. |
See #743 and related PRs. |
I suggest @afourney and @thinkall review this work because of their recent contributions to incorporate modes of select_speaker in #688.
Why are these changes needed?
This notebook shows how we can use an expressive graph to control select_speaker. Instead of hard-coding complex logic to override
select_speaker
, this example shows how we can input a directed graph that dictates the transition paths between agents. If desired, we can also extend GroupChatselect_speaker
mode to "graph" in the near future (extending the work in #688) in another PR. I believe this is a necessary step towards having more agents working together, since the number of transition pairs increases rapidly (N Choose 2).Related issue number
#485
#438 in terms of dividing the problem.
Checks