Skip to content
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

Create a Share-OpenDevin for people to share their interaction trajectories #1802

Open
5 of 8 tasks
xingyaoww opened this issue May 15, 2024 · 6 comments
Open
5 of 8 tasks
Labels
architecture related to architecture, including frontend and backend enhancement New feature or request frontend issues related to frontend severity:medium Problems that affect many users
Milestone

Comments

@xingyaoww
Copy link
Collaborator

xingyaoww commented May 15, 2024

What problem or use case are you trying to solve?

Similar to ShareGPT where people can share their interaction with ChatGPT, we can create "ShareOpenDevin", where users can contribute their interaction trajectories with OpenDevin.

Describe the UX of the solution you'd like

We need:

  • A "Share" button on the front-end UI
    • When clicked, the backend controller can send over the current State (which already contains all the history interactions) to the remote ShareOpenDevin API (we probably need a better way to figure out how to manage each session - maybe with uuid - so that same session at different steps won't get submitted multiple times)
    • for reproducibility, maybe we can also send over metadata, like OpenDevin version, agent name, model name, etc.
    • (low-priority) Figure out a way for users to authenticate themselves (e.g., via GitHub login) before Share, so it is easy to track who shared what.
  • "ShareOpenDevin" server -- maybe we want to put this in a separate repo

Do you have thoughts on the technical implementation?

Describe alternatives you've considered

Additional context

@xingyaoww xingyaoww added the enhancement New feature or request label May 15, 2024
@JustinLin610
Copy link
Contributor

This is really a terrific idea! I think we should collect more data for fine-tuning to make things work better.

@Jiayi-Pan
Copy link
Contributor

Jiayi-Pan commented May 15, 2024

happy to take care of the logging stuff (state, action, agent input/output, meta data, ...), will try to finish this in a few days.
plan to do more after nips ddl :)

@frankxu2004
Copy link
Collaborator

frankxu2004 commented May 15, 2024

Awesome idea! I wonder if it would be nice if we can let the users interact with the environment as well, e.g. terminal, editor, etc. so that we can not only record user chat history and agent actions, but also user correction actions that may sometime happen when dealing with dumb agents.

Might be a bit far fetched for now, but I think recording user demonstrations when the agent is not acting correctly are super useful as well.

@xingyaoww xingyaoww added frontend issues related to frontend architecture related to architecture, including frontend and backend labels May 15, 2024
@xingyaoww xingyaoww added this to the 2024-06 milestone May 15, 2024
@xingyaoww xingyaoww added the severity:medium Problems that affect many users label May 15, 2024
@rbren
Copy link
Collaborator

rbren commented May 15, 2024

My goal for EventStream is that it's a serializable representation of an entire session/workflow. I'd suggest leaning on that.

I'm currently working through persistent sessions, which is pretty similar technologically here

@neubig
Copy link
Contributor

neubig commented May 23, 2024

OK! I figured out how to set up a place on AWS where we can dump trajectories to share. Here's an example script of how it can be done. We can use this to add a button that allows users to share trajectories.

import requests

url = "https://kttkfkoju5.execute-api.us-east-2.amazonaws.com/od-share-trajectory"

data = {
    "email": "test@example.com",
    "token": "exampletoken",
    "trajectory": [{"x": 1, "y": 2, "z": 3}, {"x": 4, "y": 5, "z": 6}],
    "feedback": "positive"
}
response = requests.post(url, json=data)
print(response.status_code)
print(response.json())

We can refine this more later as we know more about our requirements.

@neubig
Copy link
Contributor

neubig commented May 24, 2024

This is mostly implemented through #2020, but there are a few rough edges #2033 and #2032

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
architecture related to architecture, including frontend and backend enhancement New feature or request frontend issues related to frontend severity:medium Problems that affect many users
Projects
Development

No branches or pull requests

6 participants