306 Commits

Author SHA1 Message Date
Yiran Wu
805d8452c4 Fix test error of compressible agent (#631)
* fix bug in test

* update workflow

* update

* deepcopy to copy
2023-11-11 19:57:14 +00:00
wonderful
6bb7acc34d Handled possible unclear IndexError in ConversableAgent.last_message method (#622)
* 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>
2023-11-11 18:55:57 +00:00
Alvaro Mateos
849feda98e Enable streaming support for openai v1 (#597)
* Enable streaming support for openai v1

* Added tests for openai client streaming

* Fix test_completion_stream
2023-11-11 14:30:40 +00:00
Ian
f77ca897f2 Introducing Experimental GPT Assistant Agent in AutoGen (#616)
* add gpt assistant agent

* complete code

* Inherit class ConversableAgent

* format code

* add code comments

* add test case

* format code

* fix test

* format code

* Improve GPTAssistant

* Use OpenAIWrapper to create client
* Implement clear_history()
* Reply message formatting improvements
* Handle the case when content contains image files

* README update

* Fix doc string of methods

* add multiple conversations support

* Add GPT Assistant Agent into README

* fix test

---------

Co-authored-by: gagb <gagb@users.noreply.github.com>
Co-authored-by: Beibin Li <beibin79@gmail.com>
2023-11-11 13:54:18 +00:00
Yiran Wu
19ea8b8b7a Add CompressibleAgent (#443)
* api_base -> base_url (#383)

* InvalidRequestError -> BadRequestError (#389)

* remove api_key_path; close #388

* close #402 (#403)

* openai client (#419)

* openai client

* client test

* _client -> client

* _client -> client

* extra kwargs

* Completion -> client (#426)

* Completion -> client

* Completion -> client

* Completion -> client

* Completion -> client

* support aoai

* fix test error

* remove commented code

* support aoai

* annotations

* import

* reduce test

* skip test

* skip test

* skip test

* debug test

* rename test

* update workflow

* update workflow

* env

* py version

* doc improvement

* docstr update

* openai<1

* add compressibleagent

* revise doc, add tests, add example

* fix link

* fix link

* fix link

* remove test

* update doc

* update doc

* add tiktoken to dependency

* filter_func

* async test

* dependency

* revision

* migration guide (#477)

* migration guide

* change in kwargs

* simplify header

* update optigude description

* update for dev

* revision

* revision

* allow not compressing last n msgs

* update

* correct merge

* update test workflow

* check test

* update for test

* update

* update notebook

* update

* fix bug

* update

* update

* update

* check to "pull_request_target" in contrib-openai

---------

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2023-11-10 04:11:28 +00:00
Chi Wang
dfcbea9777 seed -> cache_seed (#600) 2023-11-08 23:39:02 +00:00
Joshua Kim
2a96e4d9d2 Notebook/hierarchy flow (#482)
* Notebook showing how to use select speaker to control conversation flow.

* pytest associated with notebook.

* Added llm_config to assistant and user proxy agent, and clarified why we set use_cache to false, as requested in the review.

* Added a @pytest.mark.skipif decorator like other tests to run it only in one py version, 3.10

* Fixed config warning.

* Removd llm_config to UserProxyAgent

* Fixed minor typos.

* Reran outputs

* Remopved llm_config from user_proxy_agent

* Colab Badge link updated.

* pre-commit formatting changes.

* Fixed base_url

---------

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2023-11-07 22:06:45 +00:00
Beibin Li
b41b366549 Large Multimodal Models in AgentChat (#554)
* 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>
2023-11-06 21:33:51 +00:00
Li Jiang
f052977e24 Add support to unstructrued (#501)
* Add support to unstructrued

* Fix tests

* Add test and documents

* Fix tests

* Fix tests

* Test unstructured on linux and mac
2023-11-05 13:30:28 +00:00
Chi Wang
c4f8b1c761 Dev/v0.2 (#393)
* api_base -> base_url (#383)

* InvalidRequestError -> BadRequestError (#389)

* remove api_key_path; close #388

* close #402 (#403)

* openai client (#419)

* openai client

* client test

* _client -> client

* _client -> client

* extra kwargs

* Completion -> client (#426)

* Completion -> client

* Completion -> client

* Completion -> client

* Completion -> client

* support aoai

* fix test error

* remove commented code

* support aoai

* annotations

* import

* reduce test

* skip test

* skip test

* skip test

* debug test

* rename test

* update workflow

* update workflow

* env

* py version

* doc improvement

* docstr update

* openai<1

* add tiktoken to dependency

* filter_func

* async test

* dependency

* migration guide (#477)

* migration guide

* change in kwargs

* simplify header

* update optigude description

* deal with azure gpt-3.5

* add back test_eval_math_responses

* timeout

* Add back tests for RetrieveChat (#480)

* Add back tests for RetrieveChat

* Fix format

* Update dependencies order

* Fix path

* Fix path

* Fix path

* Fix tests

* Add not run openai on MacOS or Win

* Update skip openai tests

* Remove unnecessary dependencies, improve format

* Add py3.8 for testing qdrant

* Fix multiline error of windows

* Add openai tests

* Add dependency mathchat, remove unused envs

* retrieve chat is tested

* bump version to 0.2.0b1

---------

Co-authored-by: Li Jiang <bnujli@gmail.com>
2023-11-04 04:01:49 +00:00
Jason Holtkamp
55d27cccc9 Added example .txt file for agentchat_langchain sample notebook (#373)
* Added example .txt file for agentchat_langchain sample notebook

* Update radius.txt

---------

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2023-11-02 05:34:05 +00:00
bonadio
957ec00edd Adding async support to get_human_input (#466)
* 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
2023-11-01 04:30:22 +00:00
Aayush Chhabra
503c2430f9 Fix/async function and tool execution (#87)
* async run group chat

* conversible agent allow async functions to generate reply

* test for async execution

---------

Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2023-10-31 16:04:32 +00:00
Chi Wang
dd90756bdb bump version to 0.1.14 (#400)
* bump version to 0.1.14

* endpoint

* test

* test

* add ipython to retrievechat dependency

* constraints

* target
2023-10-28 00:24:04 +00:00
Yiran Wu
8c3401dd6a Add token_count_util (#421)
* add token_count_util

* remove token_count from retrieval util

* format

* update dependency

* update test
2023-10-27 12:57:35 +00:00
Anush
50ac547637 feat: Qdrant vector store support (#303)
* feat: QdrantRetrieveUserProxyAgent

* fix: QdrantRetrieveUserProxyAgent docstring

* chore: batch of 500 all CPU cores

* chore: conditional import for tests

* chore: config parallel, batch 100

* chore: collection creation params

* chore: conditonal payload indexing
fastembed import check

* docs: notebook for QdrantRetrieveUserProxyAgent

* docs: update docs link

* docs: notebook examples update

* chore: hnsw, payload index reference

* docs: notebook docs_path update

* Update test/agentchat/test_qdrant_retrievechat.py

Co-authored-by: Li Jiang <bnujli@gmail.com>

* chore: update notebook output

* Fix format

---------

Co-authored-by: Li Jiang <bnujli@gmail.com>
2023-10-25 05:08:43 +00:00
Li Jiang
80954e4b8d Fix tmp dir not exists (#401)
* Fix tmp dir not exists

* Update tests to make it more clear

* Add check if save path is not None
2023-10-24 16:09:25 +00:00
Chi Wang
9ed6c8e5d0 config list for test (#395) 2023-10-24 03:54:45 +00:00
Ricky Loynd
d22b6b2006 TeachableAgent (#278)
* 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>
2023-10-21 02:27:10 +00:00
Chi Wang
8d4afe4263 function call filter in group chat (#294)
* function call filter in group chat

* find agents with function_map
2023-10-19 14:43:36 +00:00
Li Jiang
f2d7553cdc Add support to custom text spliter (#270)
* Add support to custom text spliter function and a list of files or urls

* Add parameter to retrieve_config, add tests

* Fix tests

* Fix tests
2023-10-17 14:53:40 +00:00
Yiran Wu
b61aeb6cce Improving logging in oai.completion to show token_count (#179)
* update

* update doc

---------

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
2023-10-12 14:31:52 +00:00
Li Jiang
fa6e2a52c0 Add support to customized vectordb and embedding functions (#161)
* 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
2023-10-10 12:53:18 +00:00
Li Jiang
19f8711c1b Update num tokens from text (#149)
* Improve num_tokens_from_text

* Format

* Update comments

* Improve docstrings
2023-10-09 02:30:11 +00:00
Aaron
5c2a268d95 openai_utils.py - functionality for instantiating config_list with a .env file (#68)
* FORMATTING

* UPDATE - OAI __init__.py

* ruff

* ADD - notebook covering oai API configuration options and their different purposes

* ADD openai util updates so that the function just assumes the same environment variable name for all models, also added functionality for adding API configurations like api_base etc.

* ADD - updates to config_list_from_dotenv and tests for openai_util testing, update example notebook

* UPDATE - added working config_list_from_dotenv() with passing tests, and updated notebook

* UPDATE - code and tests to potentially get around the window build permission error, used different method of producing temporary files

---------

Co-authored-by: Ward <award40@LAMU0CLP74YXVX6.uhc.com>
2023-10-05 04:45:11 +00:00
Mohamed Attia
a3547f82c4 Replace the use of assert in non-test code (#80)
* 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.
2023-10-03 17:52:50 +00:00
Yiran Wu
4d85f4db0a fix append_oai_message (#47)
* fix append_oai_message

* add testcase for groupchat

* add test_oai to openai workflow

* code formate

* update

* formate

* update
2023-10-02 18:52:38 +00:00
Xiaoyun Zhang
b642f69005 minor fix (#31)
* 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
2023-10-02 12:15:25 +00:00
Aaron
4adbffa94b retrieve_utils.py - Updated.py to have the ability to parse text from PDF Files (#50)
* UPDATE - Updated retrieve_utils.py to have the ability to parse text from pdf files

* UNDO - change to recursive condition

* UPDATE - updated agentchat_RetrieveChat.ipynb to clarify which file types are accepted to be in the docs path

* ADD - missing import

* UPDATE - setup.py to have PyPDF2 in retrievechat

* RE-ADD - urls

* ADD - tests for retrieve utils, and removed deprecated PyPdf2

* Update agentchat_RetrieveChat.ipynb

* Update retrieve_utils.py

Fix format

* Update retrieve_utils.py

Replace print with logger

* UPDATE - added more specific exception to PDF decryption try/catch

* FIX - typo, return statement at wrong indentation in extract_text_from_pdf

---------

Co-authored-by: Ward <award40@LAMU0CLP74YXVX6.uhc.com>
Co-authored-by: Li Jiang <bnujli@gmail.com>
2023-10-01 10:22:58 +00:00
Chi Wang
904b293aa4 make retry_time configurable, add doc (#53)
* make retry_time configurable, add doc

* in seconds

* retry_wait_time

* bump version to 0.1.4

* remove .json

* rename

* time
2023-09-30 16:21:07 +00:00
Chi Wang
402c5bf8d1 Fix bug for windows and improve sample code (#38)
* fix bug for windows

* fix bug for windows

* more clear example

* link to example

* add test

* format

* comment

* fix assertion error

* fix test error and links

---------

Co-authored-by: Chi Wang (MSR) <chiw@microsoft.com>
2023-09-28 20:14:36 +00:00
Li Jiang
11088181b6 Improve RetrieveChat (#6)
* Upsert in batch

* Improve update context, support customized answer prefix

* Update tests

* Update intermediate answer

* Fix duplicate intermediate answer, add example 6 to notebook

* Add notebook results

* Works better without intermediate answers in the context

* Bump version to 0.1.2

* Remove commented code and add descriptions to _generate_retrieve_user_reply

---------

Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
2023-09-27 01:22:50 +00:00
Beibin Li
3627ca4f2c Extact_code can detect single-line code now (#2)
* Extact_code can detect single-line code now

* Add comments for RE

* Add test case and adjust UNKNOWN behavior

* Remove tmp test files

* Update autogen/code_utils.py

---------

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2023-09-21 16:50:44 +00:00
Chi Wang
7dd9831857 cleanup 2023-09-21 15:20:10 +00:00
Chi Wang
c8cdb2a752 cleanup 2023-09-21 15:19:06 +00:00
Chi Wang
ec85b4984d cleanup 2023-09-19 02:26:57 +00:00
Chi Wang
0c60bc5111 cleanup 2023-09-16 20:41:27 +00:00
Chi Wang
45ddfa2dd0 cleanup 2023-09-16 19:03:53 +00:00
Chi Wang
a4b9297719 cleanup 2023-09-16 16:34:16 +00:00
Chi Wang
bc4473fe8a cleanup 2023-09-16 10:57:57 +00:00
Chi Wang
4886cb5689 Rename Responsive -> Conversable (#1202)
* responsive -> conversable

* preview

* rename

* register reply

* rename and version

* bump version to 2.1.0

* notebook

* bug fix
2023-09-12 00:07:35 +00:00
Chi Wang
5f9b514be7 suffix in model name (#1206)
* suffix in model name

* bump version to 2.0.3
2023-09-04 02:32:51 +00:00
Yiran Wu
87c2361040 fix generate_reply when sender is None. (#1186)
* fix generate_reply

* code format

* add test case

* update

* update

* Update test/autogen/agentchat/test_responsive_agent.py

Co-authored-by: Chi Wang <wang.chi@microsoft.com>

* Update test/autogen/agentchat/test_responsive_agent.py

Co-authored-by: Chi Wang <wang.chi@microsoft.com>

* Update flaml/autogen/agentchat/responsive_agent.py

Co-authored-by: Chi Wang <wang.chi@microsoft.com>

---------

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2023-08-25 10:50:22 +00:00
Yiran Wu
07b97eb469 cover function calls with no arguments (#1185) 2023-08-20 05:28:29 +00:00
Chi Wang
7ab4d114d7 silent; code_execution_config; exit; version (#1179)
* silent; code_execution_config; exit; version

* url

* url

* readme

* preview

* doc

* url

* endpoints

* timeout

* chess

* Fix retrieve chat

* config

* mathchat

---------

Co-authored-by: Li Jiang <bnujli@gmail.com>
2023-08-14 07:09:45 +00:00
Li Jiang
700ff05874 Add RetrieveChat (#1158)
* Add RetrieveChat notebook, RetrieveAssistantAgent and RetrieveUserProxyAgent

* Update according to comments

* Add output

* Add tests, merge main, address comments

* Fix tests

* Merge main

* Remove unnecessary code

* Update test

* Update notebook, some functions

* Fix print issue

* Update notebook

* Update notebook

* Update notebook

* Improve retrieve utils and update notebook

* Update vector db creation method

* Update notebook

* Update notebook

* Add terminate if no more context

* Update prompt and notebook, add example for update context

* Update results

* Update results

* Update results of update context

* Fix typo

* Add table of contents

* Update table of contents
2023-08-13 12:51:54 +00:00
Chi Wang
c44d2f4a01 support async in agents (#1178)
* Make auto reply method pluggable

* support async

* async

* allow richer trigger types

* test list

* rename key
2023-08-08 01:34:47 +00:00
Chi Wang
a603e6dddc Make auto reply method pluggable (#1177)
* Make auto reply method pluggable

* allow richer trigger types

* test list
2023-08-07 18:41:58 +00:00
Chi Wang
2208dfb79e Improve auto reply registration (#1170)
* Improve auto reply registration

* object key

* fix test error

* bug fix in math user proxy agent

* allow send/receive without reply

* reset -> stop
2023-08-04 14:26:58 +00:00
Chi Wang
45b7d908e4 consecutive auto reply, history, template, group chat, class-specific reply (#1165)
* max consecutive auto reply

* chess notebook

* link to notebook

* clear history

* filter

* **context -> context

* format str template

* groupchat

* register class specific reply

* groupchat notebook

* move human reply into generate_reply

* arg in config

* colab link

* remove room

* rename
2023-08-03 09:17:20 +00:00