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

Add source entry for ai_msgs (jazzy) #42020

Merged
merged 1 commit into from
Jul 17, 2024
Merged

Conversation

AndyZe
Copy link
Contributor

@AndyZe AndyZe commented Jul 9, 2024

This is a new package so I'm adding the source entry per https://docs.ros.org/en/jazzy/How-To-Guides/Releasing/Release-Team-Repository.html#create-a-new-release-repository

This service is intended for prompting AI models.

@brettpac @yassiezar

@github-actions github-actions bot added the jazzy Issue/PR is for the ROS 2 Jazzy distribution label Jul 9, 2024
@marcoag
Copy link
Contributor

marcoag commented Jul 10, 2024

I feel like ai_msgs is a bit too generic, specially since AI is a bit of a generic name for systems that can do different things now, what more in the future. Following REP-144 on package naming conventions: Package names should be specific enough to identify what the package does.

Not sure how many AI cases this msg will cover, feel free to explain it's use, but I see an optional image as input which tells me it might be tailored towards some specific types of AI. Could we have some package name that is closer to the actual task it might be used for?

@marcoag marcoag self-assigned this Jul 10, 2024
@marcoag marcoag added the changes requested Maintainers have asked for changes to the pull request label Jul 10, 2024
@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 10, 2024

The goal of these messages is to convey a prompt to an AI model, whether it's ChatGPT or Google Gemini or Mistral. They all take the same or similar input types.

I thought about llm_msgs or gpt_msgs but those terms are likely to fall out of favor soon.

How about ai_prompt_msgs?

BTW we expect to add more msg types to the package as needed.

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 10, 2024

Specifically, I want to use it to:

  • prevent my robot from driving into mud/water
  • check if an item is grasped
  • check the vicinity of the robot

@marcoag
Copy link
Contributor

marcoag commented Jul 10, 2024

It seems that all of the AI models you mentioned are LLMs, so I would argue that llm_msgs might be some better description of the package. Then this package can be scoped to LLMs messages and for other AI types to come new packages can be created.

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 10, 2024

Well, those AI models are multimodal now. They can take audio, image, and spreadsheet inputs now, too. I'm not OK with the llm_msgs name; it would have been great a year ago.

Here are some ideas which ChatGPT generated for me:

Creating a name for a ROS2 message package that conveys prompts to AI models should ideally be descriptive, concise, and reflect the types of data it handles. Here are some suggestions:

ai_interface_msgs
ai_data_msgs
ai_comm_msgs
ai_prompt_msgs
ai_prompting_msgs
ai_request_msgs
ai_query_msgs
ai_prompt_data_msgs
ai_input_msgs
ai_task_msgs
ai_media_msgs
ai_multimodal_msgs
ai_signal_msgs
ai_directive_msgs
ai_command_msgs
ai_stimulus_msgs

These names aim to capture the essence of communicating prompts (which might include strings, images, and potentially audio) to AI models. Choose one that best fits the scope and future plans of your package.

@Yadunund
Copy link
Member

Similar to #42014 (review), I recommend robosoft_ai_msgs

@marcoag
Copy link
Contributor

marcoag commented Jul 11, 2024

  • At least one of the following must be present
    • Top level license file:
    • Per package license files:
  • License is OSI-approved: Apache License 2.0
  • License correctly listed in package.xmls
  • Public source repo: https://github.com/robosoft-ai/robosoft_ai_msgs
  • Source repository contains ROS packages
  • Each package meets REP-144 naming conventions
Package name details
$ find . -name "package.xml" -exec grep --color=auto -e "<name>" "{}" ";"
<name>robosoft_ai_msgs</name>
License details
$ find . -name "package.xml" -exec grep --color=auto -e "<license>" "{}" "+"
<license>Apache-2.0</license>

@marcoag marcoag requested a review from Yadunund July 11, 2024 03:33
@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 11, 2024

How about openai_msgs? robosoft_ai_msgs just doesn't roll off the tongue, and the PR has nothing to do with robosoft, functionally

@AndyZe AndyZe marked this pull request as draft July 11, 2024 19:04
@AndyZe AndyZe marked this pull request as ready for review July 12, 2024 00:05
@marcoag
Copy link
Contributor

marcoag commented Jul 12, 2024

But oepnai is an organization not a system that does something concrete...

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 12, 2024

I could do openai_prompt_msgs if you like. The messages are for prompting OpenAI.

Like I said before, it's very hard to nail down a specific application; the inputs will be many things.

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 13, 2024

Will you accept prompt_msgs @marcoag ? Surely prompting is something concrete.

@brettpac
Copy link

@marcoag & @Yadunund,

Yes, OpenAI is an organization. Robosoft is an organization too. But you guys saw no issues with recommending robosoft_ai_msgs for the name.

So what is the problem with openai_msgs? A package of msgs and services meant to interface ROS2 with online services provided by OpenAI, like ChatGPT-4, ChatGPT-4o, DALL-E and whatever they come up with down the road.

This "concrete"ness argument made by marcoag should be tossed out immediately. It's vague, arbitrary and found absolutely nowhere in REP-144.

But, as per REP-144, the name openai_msgs is more descriptive than robosoft_ai_msgs in that the messages are used to interface ROS2 systems with llms/products/online services offered by OpenAI. And since these are the only products/services offered by OpenAI, I don't believe it is necessary to add additional modifiers like prompt or llm (such as openai_prompt_msgs).

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 13, 2024

I think we all agree, if OpenAI ever wants to officially release a ROS package, they can have the package name back. In case that's the holdup.

@Yadunund
Copy link
Member

@brettpac thanks for your feedback!

Yes, OpenAI is an organization. Robosoft is an organization too. But you guys saw no issues with recommending robosoft_ai_msgs for the name.

If this package was under an openai Github org, it would have been no problem to go with openai_msgs. However it is not.

So what is the problem with openai_msgs? A package of msgs and services meant to interface ROS2 with online services provided by OpenAI, like ChatGPT-4, ChatGPT-4o, DALL-E and whatever they come up with down the road.

The problem is that these AI tools are used by a number of users. What if someone else wanted to release such a package because they felt their interface definitions were more appropriate? Unless there is some effort made to gain a consensus from the community, like for mocap systems, it wouldn't be fair for an org that is unaffiliated with openai to maintain openai_msgs. Some specialization in the naming would make things unequivocal.

But, as per REP-144, the name openai_msgs is more descriptive than robosoft_ai_msgs in that the messages are used to interface ROS2 systems with llms/products/online services offered by OpenAI.

imo robosoft_openai_msgs would be a good compromise. Would you be agreeable to that? it would be akin to the willow_garage_pr2_wavefront_planner_launch example in REP-144.

I think we all agree, if OpenAI ever wants to officially release a ROS package, they can have the package name back. In case that's the holdup.

@AndyZe I think the deliberating over the right package name now saves the trouble of renaming, updating release repos, making downstream users update their codebase, etc in the future if OpenAI decides to release such a package.

Anyways, I recognize this is mine (and Marco's) subjective opinions which may not be shared with other rosdistro maintainers so I've added this topic to next week's ROS 2 Weekly meeting's agenda to get more opinions. Thanks a lot for your patience as we navigate thought this, I understand it can be frustrating...

@brettpac
Copy link

Is chatgpt_msgs an option that would be approved?

I think it's somewhat hilarious that @AndyZe's original intent for a package that could be used for multiple llms has now gotten narrowed down to just one in order to appease the reviewers and REP-144, but thats the world we live in. But I digress...

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 13, 2024

Noting that 4 long-standing, high-level ROS contributors have already deliberated over these message formats/naming.

@ros-discourse
Copy link

This pull request has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/soliciting-feedback-on-a-msg-package-for-ai-prompting/38587/1

@Yadunund
Copy link
Member

I think it's somewhat hilarious that @AndyZe's original intent for a package that could be used for multiple llms has now gotten narrowed down to just one in order to appease the reviewers and REP-144, but thats the world we live in. But I digress...

@marcoag had approved robosoft_ai_msgs which could have been used for multiple llms however there was some push back after. @AndyZe's discourse post is a great start so let's take it from there :)

@AndyZe
Copy link
Contributor Author

AndyZe commented Jul 16, 2024

OK, this should be ready @marcoag and @Yadunund. Thank you (truly) for helping find good package names. It was worth iterating.

Copy link
Member

@Yadunund Yadunund left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 😄

@marcoag
Copy link
Contributor

marcoag commented Jul 17, 2024

OK, this should be ready @marcoag and @Yadunund. Thank you (truly) for helping find good package names. It was worth iterating.

Thanks for being patient while iterating on this!

@marcoag marcoag merged commit e8dbd0c into ros:master Jul 17, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changes requested Maintainers have asked for changes to the pull request jazzy Issue/PR is for the ROS 2 Jazzy distribution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants