rosdistro icon indicating copy to clipboard operation
rosdistro copied to clipboard

Add `source` entry for ai_msgs (jazzy)

Open AndyZe opened this issue 1 year ago • 18 comments

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

AndyZe avatar Jul 09 '24 22:07 AndyZe

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 avatar Jul 10 '24 03:07 marcoag

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 avatar Jul 10 '24 04:07 AndyZe

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

AndyZe avatar Jul 10 '24 04:07 AndyZe

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.

marcoag avatar Jul 10 '24 04:07 marcoag

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.

AndyZe avatar Jul 10 '24 13:07 AndyZe

Similar to https://github.com/ros/rosdistro/pull/42014#pullrequestreview-2170529789, I recommend robosoft_ai_msgs

Yadunund avatar Jul 10 '24 23:07 Yadunund

  • [x] At least one of the following must be present
    • [x] Top level license file:
    • [ ] Per package license files:
  • [x] License is OSI-approved: Apache License 2.0
  • [x] License correctly listed in package.xmls
  • [x] Public source repo: https://github.com/robosoft-ai/robosoft_ai_msgs
  • [x] Source repository contains ROS packages
  • [x] 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 avatar Jul 11 '24 03:07 marcoag

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 avatar Jul 11 '24 19:07 AndyZe

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

marcoag avatar Jul 12 '24 03:07 marcoag

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 avatar Jul 12 '24 09:07 AndyZe

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

AndyZe avatar Jul 13 '24 04:07 AndyZe

@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).

brettpac avatar Jul 13 '24 06:07 brettpac

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 avatar Jul 13 '24 13:07 AndyZe

@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...

Yadunund avatar Jul 13 '24 18:07 Yadunund

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...

brettpac avatar Jul 13 '24 19:07 brettpac

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

AndyZe avatar Jul 13 '24 19:07 AndyZe

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

ros-discourse avatar Jul 13 '24 19:07 ros-discourse

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 :)

Yadunund avatar Jul 13 '24 20:07 Yadunund

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

AndyZe avatar Jul 16 '24 22:07 AndyZe

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 avatar Jul 17 '24 02:07 marcoag