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