* Throw an explicit and proper error when someone asks to load the OAI_CONFIG_LIST, and it is missing.
* Updated to use pytest.raises. Added docstring. Updated some tests to not try to load the config_list when skipping OAI tests.
* Fixed wrong indentation in config_list_from_json, and updated test_utils to work with non-empty lists.
* Read key location from global constants.
* Added missingpath.
* Moved config_list_from_json to inside a skip check.
* Filter out candidates with the same name but different instructions, file IDs, and function names
* polish
* improve log
* improving log
* improve log
* Improve function signature (#2)
* try to fix ci
* try to fix ci
---------
Co-authored-by: gagb <gagb@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* add function decorator to converasble agent
* polishing
* polishing
* added function decorator to the notebook with async function calls
* added support for return type hint and JSON encoding of returned value if needed
* polishing
* polishing
* refactored async case
* Python 3.8 support added
* polishing
* polishing
* missing docs added
* refacotring and changes as requested
* getLogger
* documentation added
* test fix
* test fix
* added testing of agentchat_function_call_currency_calculator.ipynb to test_notebook.py
* added support for Pydantic parameters in function decorator
* polishing
* Update website/docs/Use-Cases/agent_chat.md
Co-authored-by: Li Jiang <bnujli@gmail.com>
* Update website/docs/Use-Cases/agent_chat.md
Co-authored-by: Li Jiang <bnujli@gmail.com>
* fixes problem with logprob parameter in openai.types.chat.chat_completion.Choice added by openai version 1.5.0
* get 100% code coverage on code added
* updated docs
* default values added to JSON schema
* serialization using json.dump() add for values not string or BaseModel
* added limit to openai version because of breaking changes in 1.5.0
* added line-by-line comments in docs to explain the process
* polishing
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Li Jiang <bnujli@gmail.com>
* fix: typo
* fix: typo
* fix: typo of function name
* fix: typo of function name of test file
* Update test_token_count.py
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Added an agent description field that can be distinct from the system_message, and be used to for orchestration (e.g., GroupChatManager, etc.)
* Added debugging.
* Moved default descriptions to constants.
* Fixed conditions under which the assistant uses the default description.
* Removed debugging.
* Updated GroupChat prompt.
* Re-added debugging.
* Removed double [[ ]].
* Another update to GroupSelection prompt.
* Changed 'people' to 'participants' since agents are not people.
* Changed 'role' to 'name'
* Removed debugging statements.
* Restored the default prompt. Created a contrib class with new prompt.
* Fixed documentation.
* Removed broken link.
* Fixed a warning message.
* Removed GroupChatModerator contrib. Will re-add in another PR
* Resolving comment.
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Change "content" type in Conversable Agent
* content and system_message support str and List
Update for all other agents
* Content_str now also takes None as input
* Group Chat now works with LMM too
* Style: newline for import in Conversable Agentt
* Add test for gourpchat + lmm
* Resolve comments
1. Undo AssistantAgent changes
2. Modify the asserts and raises in `content_str` function and update
test accordingly.
* Undo AssistantAgent
* Update comments and add assertion for LMM
* Typo fix in docstring for content_str
* Remove “None” out conversable_agent.py
* Lint message to dict in multimodal_conversable_agent.py
* Address lint issues
* linting
* Move lmm test into contrib test
* Resolve 2 comments
* Move img_utils into contrib folder
* Resolve img_utils path issues
* Enable defining new functions after agent creation
* Add notebook for function inception example
* format
* 1. fix bug 2. support remove function
* 1. fix bug 2. support remove function
* 1. add example doc 2. change test file 3. change ipynb title
* Update website/docs/Examples.md
---------
Co-authored-by: Li Jiang <bnujli@gmail.com>
Co-authored-by: “skzhang1” <“shaokunzhang529@gmail.com”>
Co-authored-by: Shaokun Zhang <shaokunzhang529@gmail.com>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
* Update chat_with_teachable_agent.py to v2.
* Update agentchat_teachability.ipynb to v2.
* Add test of teachability accuracy.
* Update installation instructions.
* Add to contrib tests.
* pre-commit fixes
* Apply reviewer suggestions to test workflows.
* support assistant retrieval using name
* address comment
* Update autogen/agentchat/contrib/gpt_assistant_agent.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* make code more reading friendly
* ignore test error
* format code
* Update autogen/agentchat/contrib/gpt_assistant_agent.py
typo fix
* fix test case
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
* fix typos in autogen/agentchat/conversable_agent.py
* fix typos in autogen/code_utils.py
* fix typos in autogen/oai/completion.py
* fix typos in test/agentchat/test_assistant_agent.py
* Update test/agentchat/test_assistant_agent.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Makes select_speaker more robust by checking for agents mentioned anywhere in the selection string. Addresses 663.
* Added test coverage for group chat mentions. Refactored mention counter to own function.
* Fixed pre-commit formatting.
* Added an 'auto' mode to last_n_messages
* Added tests for the last_n_messages = 'auto' mode
* Added test one additional test case that was overlooked.
* Refactor GPTAssistantAgent constructor to handle
instructions and overwrite_instructions flag
- Ensure that `system_message` is always consistent with `instructions`
- Ensure provided instructions are always used
- Add option to permanently modify the instructions of the assistant
* Improve default behavior
* Add a test; add method to delete assistant
* Add a new test for overwriting instructions
* Add test case for when no instructions are given for existing assistant
* Add pytest markers to test_gpt_assistant.py
* add test in workflow
* update
* fix test_client_stream
* comment out test_hierarchy_
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: kevin666aa <yrwu000627@gmail.com>
* Handled possible IndexError in ConversableAgent.last_message method with more clear error message and added test in test_conversable_agent.py.
* Fix code formatting issues.
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* LMM Code added
* LLaVA notebook update
* Test cases and Notebook modified for OpenAI v1
* Move LMM into contrib
To resolve test issues and deploy issues
In the future, we can install pillow by default, and then move back
LMM agents into agentchat
* LMM test setup update
* try...except... clause for LMM tests
* disable patch for llava agent test
To resolve dependencies issue for build
* Add LMM Blog
* Change docstring for LMM agents
* Docstring update patch
* llava: insert reply at position 1 now
So, it can still handle human_input_mode
and max_consecutive_reply
* Resolve comments
Fixing: typos, blogs, yml, and add OpenAIWrapper
* Signature typo fix for LMM agent: system_message
* Update LMM "content" from latest OpenAI release
Reference https://platform.openai.com/docs/guides/vision
* update LMM test according to latest OpenAI release
* Fully support GPT-4V now
1. Add a notebook for GPT-4V. LLava notebook also updated.
2. img_utils updated
3. GPT-4V formatter now return base64 image with mime type
4. Infer mime type directly from b64 image content (while loading
without suffix)
5. Test cases modified according to all the related changes.
* GPT-4V link updated in blog
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Adding async support to get_human_input
* Adjust code for Code formatting testing fail
* Adjust the test_async_get_human_input.py to run async on test
* Adjust the test_async_get_human_input.py for pre-commit-check error
* Adjust the test_async_get_human_input.py for pre-commit-check error v2
* Adjust remove unnecessary register_reply
* Adjust test to use asyncio call
* Adjust go back to not use asyncio
* Initial commit.
* Disable LLM response caching.
* Add teachability option to setup.py
* Modify test to use OAI_CONFIG_LIST as suggested in the docs.
* Expand unit test.
* Complete unit test.
* Add filter_dict
* details
* AnalysisAgent
* details
* More documentation and debug output.
* Support retrieval of any number of relevant memos, including zero.
* More robust analysis separator.
* cleanup
* teach_config
* refactoring
* For robustness, allow more flexibility on memo storage and retrieval.
* de-dupe the retrieved memos.
* Simplify AnalysisAgent. The unit tests now pass with gpt-3.5
* comments
* Add a verbosity level to control analyzer messages.
* refactoring
* comments
* Persist memory on disk.
* cleanup
* Use markdown to format retrieved memos.
* Use markdown in TextAnalyzerAgent
* Add another verbosity level.
* clean up logging
* notebook
* minor edits
* cleanup
* linter fixes
* Skip tests that fail to import openai
* Address reviewer feedback.
* lint
* refactoring
* Improve wording
* Improve code coverage.
* lint
* Use llm_config to control caching.
* lowercase notebook name
* Sort out the parameters passed through to ConversableAgent, and supply full docstrings for the others.
* lint
* Allow TextAnalyzerAgent to be given a different llm_config than TeachableAgent.
* documentation
* Modifications to run openai workflow.
* Test on just python 3.10.
Replace agent with agent teachable_agent as recommended.
* Test on python 3.9 instead of 3.10.
* Remove space from name -> teachableagent
---------
Co-authored-by: Li Jiang <bnujli@gmail.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Add custom embedding function
* Add support to custom vector db
* Improve docstring
* Improve docstring
* Improve docstring
* Add support to customized is_termination_msg fucntion
* Add a test for customize vector db with lancedb
* Fix tests
* Add test for embedding_function
* Update docstring
* Replace `assert`s in the `conversable_agent` module with `if-log-raise`.
* Use a `logger` object in the `code_utils` module.
* Replace use of `assert` with `if-log-raise` in the `code_utils` module.
* Replace use of `assert` in the `math_utils` module with `if-not-raise`.
* Replace `assert` with `if` in the `oai.completion` module.
* Replace `assert` in the `retrieve_utils` module with an if statement.
* Add missing `not`.
* Blacken `completion.py`.
* Test `generate_reply` and `a_generate_reply` raise an assertion error
when there are neither `messages` nor a `sender`.
* Test `execute_code` raises an `AssertionError` when neither code nor
filename is provided.
* Test `split_text_to_chunks` raises when passed an invalid chunk mode.
* * Add `tiktoken` and `chromadb` to test dependencies as they're used in
the `test_retrieve_utils` module.
* Sort the test requirements alphabetically.
* minor fix for stablility
* fix format
* fix format
* update run_code logic
* format
* Update conversable_agent.py
* fix format
* Update conversable_agent.py
* add tests
* fix format
* revert changes