* switch to officially supported Vertex AI message sending + safety setting converion for vertexai
* add system instructions
* switch to officially supported Vertex AI message sending + safety setting converion for vertexai
* fix bug in safety settings conversion
* add missing system instructions
* add safety settings to send message
* add support for credentials objects
* add type checkingchange project_id to project arg
* add more tests
* fix mock creation in test
* extend docstring
* fix errors with gemini message format in chats
* add option for vertexai response validation setting & improve docstring
* readding empty message handling
* add more tests
* extend and improve gemini vertexai jupyter notebook
* rename project arg to project_id and GOOGLE_API_KEY env var to GOOGLE_GEMINI_API_KEY
* adjust docstring formatting
* Groq Client Class - main class and setup, except tests
* Change pricing per K, added tests
* Streaming support, including with tool calling
* Used Groq retries instead of loop, thanks Gal-Gilor!
* Fixed bug when using logging.
---------
Co-authored-by: Qingyun Wu <qingyun0327@gmail.com>
* First pass together.ai client class
* Config handling, models and cost
* Added tests, moved param management to create function
* Tests, parameter, validation, logging updates
* Added use of client_utils PR 2949
* Updated to return OAI response
* Notebook example
* Improved function calling, updated tests, updated notebook with Chess example
* Tidied up together client class, better parameter handling, simpler exception capture, warning for no cost, reuse in tests, cleaner tests
* Update of documentation notebook, replacement of old version
* Fix of messages parameter for hide_tools function call
* Update autogen/oai/together.py
Co-authored-by: Qingyun Wu <qingyun0327@gmail.com>
* Update together.py to fix text
---------
Co-authored-by: Qingyun Wu <qingyun0327@gmail.com>
Co-authored-by: Yiran Wu <32823396+yiranwu0@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Initial commit of Mistral client class
* Updated to manage final system message for reflection_with_llm
* Add Mistral support to client class
* Add Mistral support across the board (based on Gemini changes)
* Test file for Mistral client
* Updated handling of config, added notebook for documentation
* Added support for additional API parameters
* Remove unneeded code, updated exception raising
* Updated handling of keywords, including type checks, defaults, warnings. Updated notebook example to remove logging warnings.
* Added class description.
* Updated tests to support new config handling.
* Moved parameter parsing to create function, minimised init, added parameter tests
* Refined parameter validation
* Correct spacing
* Fixed string concat in parameter validation
* Corrected upper/lower bound warning
* Use client_tools, tidy up Mistral create, better handle tool call response, tidy tests
* Update of documentation notebook, replacement of old version
* Update to handle multiple tool_call recommendations in a message
* Updated tests to accommodate multiple tool_calls as well as content in message
* Update autogen/oai/mistral.py comment
Co-authored-by: Qingyun Wu <qingyun0327@gmail.com>
* cleanup, rewrite mock
* update
---------
Co-authored-by: Qingyun Wu <qingyun0327@gmail.com>
Co-authored-by: kevin666aa <yrwu000627@gmail.com>
* intial setup for the anthropic client with cost config
* update: other methods added
* fix: formatting
* fix: config unused
* update: changes made in the client
* update: test added to the workflow
* update: added tests to the anthropic client
* fix: errors in workflows and client
* fix
* fix: anthropic tools type
* update: notebook anthropic
* Nonetype fixed
* fix-tests config
* update: tests and client issues
* logger support
* remove sys path
* updated the functioning of the client
* update: type hints and stream
* skip tests- importerror
* fix: anthropic client and tests
* none fix
* Alternating roles, parameter keywords, cost on response,
* update: anthropic notebook
* update: notebook with more details
* devcontainer
* update: added validate_params from the client_utils
* fix: formatting
* fix: minor comment
---------
Co-authored-by: Mark Sze <mark@sze.family>
* Addition of client utilities, initially for parameter validation
* Corrected test
* update: type checks and few tests
* fix: docs, tests
---------
Co-authored-by: Hk669 <hrushi669@gmail.com>
* fix missing message in history
* fix message handling
* add list of Parts to Content object
* add test for gemini message conversion function
* add test for gemini message conversion
* add message to asserts
* add safety setting support for vertexai
* remove vertexai safety settings
* identify model with tags instead of model name
* models
* model to tag
* add more model name
* format
* Update test/agentchat/test_function_call.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update test/agentchat/test_function_call.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update test/agentchat/test_tool_calls.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update test/agentchat/test_tool_calls.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* remove uncessary tags
* use gpt-4 as tag
* model to tag
* add tag for teachable agent test
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: AutoGen-Hub <flaml20201204@gmail.com>
* google default auth and svc keyfile for Gemini
* [.Net] Release note for 0.0.14 (#2815)
* update release note
* update trigger
* [.Net] Update website for AutoGen.SemanticKernel and AutoGen.Ollama (#2814)
support vertex ai compute region
* [CAP] User supplied threads for agents (#2812)
* First pass: message loop in main thread
* pypi version bump
* Fix readme
* Better example
* Fixed docs
* pre-commit fixes
* refactoring, minor fixes, update gemini demo ipynb
* add new deps again and reset line endings
* Docstring for the init function. Use private methods
* improve docstring
---------
Co-authored-by: Xiaoyun Zhang <bigmiao.zhang@gmail.com>
Co-authored-by: Rajan <rajan.chari@yahoo.com>
Co-authored-by: Zoltan Lux <z.lux@campus.tu-berlin.de>
* Start Gemini integration: works ok with Text now
* Gemini notebook lint
* try catch "import" for Gemini
* Debug: id issue for chat completion in Gemini
* Add RAG example
* Update docs for RAG
* Fix missing pydash
* Remove temp folder
* Fix test error in runs/7206014032/job/19630042864
* Fix tqdm warning
* Fix notebook output
* Gemini's vision model is supported now
* Install instructions for the Gemini branch
* Catch and retry when see Interval Server Error 500
* Allow gemini to take more flexible messages
i.e., it can take messages where "user" is not the last role.
* Use int time for Gemini client
* Handle other exceptions in gemini call
* rename to "create" function for gemini
* GeminiClient compatible with ModelClient now
* Lint
* Update instructions in Gemini notebook
* Lint
* Remove empty blocks from Gemini notebook
* Add gemini into example page
* self.create instead of call
* Add py and Py into python execution
* Remove error code from merging
* Remove pydash dependency for gemini
* Add cloud-gemini doc
* Remove temp file
* cache import update
* Add test case for summary with mm input
* Lint: warnings instead of print
* Add test cases for gemini
* Gemini test config
* Disable default model for gemini
* Typo fix in gemini workflow
* Correct grammar in example notebook
* Raise if "model" is not provided in create(...)
* Move TODOs into a roadmap
* Update .github/workflows/contrib-tests.yml
Co-authored-by: Davor Runje <davor@airt.ai>
* Gemini test config update
* Update setup.py
Co-authored-by: Davor Runje <davor@airt.ai>
* Update test/oai/test_gemini.py
Co-authored-by: Davor Runje <davor@airt.ai>
* Update test/oai/test_gemini.py
Co-authored-by: Davor Runje <davor@airt.ai>
* Remove python 3.8 from gemini
No google's generativeai for Windows with Python 3.8
* Update import error handling for gemini
* Count tokens and cost for gemini
---------
Co-authored-by: Li Jiang <bnujli@gmail.com>
Co-authored-by: Davor Runje <davor@airt.ai>
* Add isort
* Apply isort on py files
* Fix circular import
* Fix format for notebooks
* Fix format
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Validate the OpenAI API key format
Increase the amount of internal validation for OpenAI API keys. The intent is
to shorten the debugging loop in case of typos. The changes do *not* add
validation for Azure OpenAI API keys.
* Add the validation in `__init__` of `OpenAIClient`.
* Introduce the `MOCK_OPEN_AI_API_KEY` constant for testing.
* Add unit test coverage for the `is_valid_api_key` function.
* Validate the OpenAI API key format
Increase the amount of internal validation for OpenAI API keys. The intent is
to shorten the debugging loop in case of typos. The changes do *not* add
validation for Azure OpenAI API keys.
* Add the validation in `__init__` of `OpenAIClient`.
* Introduce the `MOCK_OPEN_AI_API_KEY` constant for testing.
*Add unit test coverage for the `is_valid_api_key` function.
* Log a warning when register a default client fails.
* Validate the OpenAI API key format
Increase the amount of internal validation for OpenAI API keys. The intent is
to shorten the debugging loop in case of typos. The changes do *not* add
validation for Azure OpenAI API keys.
* Add the validation in `__init__` of `OpenAIClient`. We'll log a
warning when the OpenAI API key isn't valid.
* Introduce the `MOCK_OPEN_AI_API_KEY` constant for testing.
* Add unit test coverage for the `is_valid_api_key` function.
* Check for OpenAI base_url before API key validation
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* add client interface, response protocol, and move code into openai client class
* add ability to register custom client
* tidy up code
* adding checks and errors, and more unit tests
* remove code
* fix error msg
* add use_docer False in notebook
* better error message
* add another example to custom model notebook
* rename and have register_client take model name too
* make Client protocol and remove inheritance
* renames
* update notebook
* add link
* rename and more error checking for registered agents
* adding message retrieval to client protocol for more flexible response
* fix failing openai test
* api_type req made model_client_cls requirement
* notebook cleanup and added blog
* remove raise error if client list is empty - client list will never be empty it will have placeholders
* rename Client -> ModelClient
* add forgotten file
* fix test by fetching internal client
* Update autogen/oai/client.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* don't add retrieval function to cache
* added placeholder cllient class during initial client init, and rewrote registration
* fix spelling
* Update autogen/agentchat/conversable_agent.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* type hints, small fixes, docstr comment
* fix api type checking
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* implement redis cache mode, if redis_url is set in the llm_config then
it will try to use this. also adds a test to validate both the existing
and the redis cache behavior.
* PR feedback, add unit tests
* more PR feedback, move the new style cache to a context manager
* Update agent_chat.md
* more PR feedback, remove tests from contrib and have them run with the normal jobs
* doc
* updated
* Update website/docs/Use-Cases/agent_chat.md
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* update docs
* update docs; let openaiwrapper to use cache object
* typo
* Update website/docs/Use-Cases/enhanced_inference.md
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* save previous client cache and reset it after send/a_send
* a_run_chat
---------
Co-authored-by: Vijay Ramesh <vijay@regrello.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Switched to AzureOpenAI for api_type=="azure"
* Setting AzureOpenAI to empty object if no `openai`
* extra_ and openai_ kwargs
* test_client, support for Azure and "gpt-35-turbo-instruct"
* instruct/azure model in test_client_stream
* generalize aoai support (#1)
* generalize aoai support
* Null check, fixing tests
* cleanup test
---------
Co-authored-by: Maxim Saplin <smaxmail@gmail.com>
* Returning back model names for instruct
* process model in create
* None check
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Added the ability to add tags to the OAI_CONFIG_LIST, and filter on them.
* Update openai_utils.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* 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.
* Improve config_list_from_json
The `env_or_file` variabe can point to an
environment variable of file path.
* Update autogen/oai/openai_utils.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Use "with" to open config file
* Remove unused.
* Remove accidental added file
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* fix for #762 ,get_config_list/oia assetion, docs, test
* Improved docstrings
* test_utils using fake data and temp files
* "Black" formatting applied
* Fix build (KEY_LOC and OAI_CONFIG_LIST as consts in test_client)
* Ramping up openai_utils coverage
* Missing parameter doc.
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.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>
* bump version to 0.2.1
* remove example link
* update
---------
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
Co-authored-by: kevin666aa <yrwu000627@gmail.com>