microsoft / autogen

A programming framework for agentic AI 🤖
https://microsoft.github.io/autogen/
Creative Commons Attribution 4.0 International
32.13k stars 4.68k forks source link

Notebook config is inconsistent #493

Closed craigomatic closed 11 months ago

craigomatic commented 11 months ago

I've noticed a variety of config loading approaches used across the notebooks:

autogen.config_list_from_json("OAI_CONFIG_LIST",...) agentchat_auto_feedback_from_code_execution.ipynb agentchat_chess.ipynb agentchat_groupchat_RAG.ipynb agentchat_groupchat_research.ipynb agentchat_groupchat_vis.ipynb agentchat_groupchat.ipynb agentchat_human_feedback.ipynb agentchat_lmm_llava.ipynb agentchat_MathChat.ipynb agentchat_planning.ipynb agentchat_qdrant_RetrieveChat.ipynb agentchat_RetrieveChat.ipynb agentchat_stream.ipynb agentchat_teachability.ipynb agentchat_teaching.ipynb agentchat_two_users.ipynb agentchat_web_info.ipynb rai-researcher-groupchat.ipynb

autogen.config_list_from_models(model_list=....) agentchat_function_call.ipynb agentchat_langchain.ipynb

autogen.config_list_openai_aoai() oai_chatgpt_gpt4.ipynb oai_completion.ipynb

Would it make sense to switch all notebooks to use a single approach for config?

The quickstart in the readme suggests the config_list_from_json approach:

image

I also wonder if there is a strong reason to ship more than one way of loading config files as part of autogen?

gagb commented 11 months ago

I like the consistency suggestion! Pros: consistency Cons: other notebooks show example usage of other config setting methods

@victordibia what do you think?

victordibia commented 11 months ago

I also wonder if there is a strong reason to ship more than one way of loading config files as part of autogen?

In general, different environments/teams might favor different approaches to storing env variable data and secrets (e.g., use of .env files shared across applications), hence the effort to support different config loading methods.

This FAQ item and linked notebook does a decent job of describing each approach with some rationale.

I also agree that consistency is good.
At the same time, we want a good way to educate the user on other available methods .e.g. link to FAQ in the notebooks. This way we minimize the creation of new issues in form of "how do I load config from env variables " .. etc

gagb commented 11 months ago

@victordibia is my following understanding of your suggestion correct?

  1. Make notebooks consistent -- this way once json way is setup, all NBs run
  2. Add text in each NB pointing to the FAQ
craigomatic commented 11 months ago

This way we minimize the creation of new issues in form of "how do I load config from env variables " .. etc

You are receiving the inverse issue right now as I thought I had configured the notebooks (based on the readme in the root of the repo) and burned time debugging before I realised list_from_models was being used instead of list_from_json 😀

pcdeadeasy commented 11 months ago

We are open to suggestion @craigomatic. Closing this for now. Please free go open with suggestions and also contribute.