Amna Mubashar
498637788a
feat: Allow OpenAI client config in OpenAIChatGenerator
and AzureOpenAIChatGenerator
( #9215 )
...
* Allow OpenAI client config in chat generator
* Add init_http_client as a util method
* Update azure chat gen
* Fix linting
2025-04-16 18:32:13 +02:00
Vladimir Blagojevic
c81d68402c
feat: Add Toolset to tooling architecture ( #9161 )
...
* Add Toolset abstraction
* Add reno note
* More pydoc improvements
* Update test
* Simplify, Toolset is a dataclass
* Wrap toolset instance with list
* Add example
* Toolset pydoc serde enhancement
* Toolset as init param
* Fix types
* Linting
* Minor updates
* PR feedback
* Add to pydoc config, minor import fixes
* Improve pydoc example
* Improve coverage for test_toolset.py
* Improve test_toolset.py, test custom toolset serde properly
* Update haystack/utils/misc.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* Rework Toolset pydoc
* Another minor pydoc improvement
* Prevent single Tool instantiating Toolset
* Reduce number of integration tests
* Remove some toolset tests from openai
* Rework tests
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-04-04 16:09:46 +02:00
Sebastian Husch Lee
d15f1b9043
feat: Add outputs_to_string
to Tool and ComponentTool ( #9152 )
...
* Add outputs_to_string to Tool and ComponentTool
* Doc string and fix tests
* Add reno
* Fix mypy
2025-04-01 14:04:50 +02:00
Julian Risch
657d09d7f1
feat: integrate updates of Tool, ToolInvoker, State, create_tool_from_function, ComponentTool from haystack-experimental ( #9113 )
...
* update Tool,ToolInvoker,ComponentTool,create_tool_from_function
* add State and its utils
* add tests for State and its utils
* update tests for Tool etc.
* reno
* fix circular imports
* update experimental imports in tests
* fix unit tests
* fix ChatGenerator unit tests
* mypy
* add State to init and pydoc
* explain State in more detail in release note
* add test from #8913
* re-add _check_duplicate_tool_names and refactor imports
* rename inputs and outputs
2025-03-28 10:49:23 +01:00
Stefano Fiorucci
67ab3788ea
test: OpenAIChatGenerator - fix flaky test ( #9075 )
...
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
2025-03-20 14:29:07 +00:00
Sebastian Husch Lee
6f98cc2ac1
refactor: Update how we look for finish_reason ( #9046 )
...
* Update how we look for finish_Reason
* Additional change
* Add unit test and integration test
* Refactor
* Use correct mock
* PR comments
2025-03-17 13:25:00 +01:00
Amna Mubashar
13c3768d49
fix: allow support for include_usage
in streaming using OpenAIChatGenerator ( #8968 )
...
* fix error in handling usage completion chunk
2025-03-05 18:30:26 +01:00
tstadel
13968cc15b
fix: in OpenAIChatGenerator set additionalProperties to False when tools_strict=True ( #8913 )
...
* fix: set ComponentTool addtionalProperties for OpenAI tools_strict=True
* add reno
* Move the additionalProperties into the OpenAIChatGenerator
* Remove
* Put additionalProperties into the correct place
* Fix test
* Update releasenotes/notes/fix-componenttool-for-openai-tools_strict-998e5cd7ebc6ec19.yaml
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
---------
Co-authored-by: Sebastian Husch Lee <sebastian.lee@deepset.ai>
Co-authored-by: Sebastian Husch Lee <sjrl@users.noreply.github.com>
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-03-03 16:23:24 +01:00
Michele Pangrazzi
209e6d5ff0
remove duplicate test ( #8944 )
2025-02-28 13:27:43 +00:00
Michele Pangrazzi
44fb20c2d5
Add run_async
to OpenAIChatGenerator
( #8880 )
...
* Implememntation of run_async (wip)
* Add missing tests ; Move async tests to test_openai_async.py
* Add release note
* Update docstring
* Alignments with haystack-experimental implementation
* Lint: removed unused imports
* Update haystack/components/generators/chat/openai.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-02-20 16:51:46 +00:00
Sebastian Husch Lee
52909a0c81
fix: Fix OpenAIChatGenerator + tools + streaming ( #8879 )
...
* Fix chat generator + tools + streaming
* Add reno
* Update docs
* Remove unused import
* add doc
* Fix test
* small cleanup
* PR comments
* fix test
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
2025-02-20 08:40:22 +01:00
Vladimir Blagojevic
a7c1661f13
fix: Look through all streaming chunks for tools calls ( #8829 )
...
* Look through all streaming chunks for tools calls
* Add reno note
* mypy fixes
* Improve robustness
* Don't concatenate, use the last value
* typing
* Update releasenotes/notes/improve-tool-call-chunk-search-986474e814af17a7.yaml
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* Small refactoring
* isort
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-02-11 13:25:39 +01:00
Vladimir Blagojevic
21dd03d3e7
feat: Add completion start time timestamp to relevant generators ( #8728 )
...
* OpenAIChatGenerator - add completion_start_time
* HuggingFaceAPIChatGenerator - add completion_start_time
* Add tests
* Add reno note
* Relax condition for cached responses
* Add completion_start_time timestamping to non-chat generators
* Update haystack/components/generators/chat/hugging_face_api.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* PR feedback
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-01-17 09:58:45 +01:00
Stefano Fiorucci
741ce5df50
fix: OpenAIChatGenerator
- do not pass tools to the OpenAI client when none are provided ( #8702 )
...
* do not pass tools to OpenAI client if None
* release note
* fix release note
2025-01-10 14:46:41 +01:00
Stefano Fiorucci
3f15f38c51
refactor: move Tool
to a separate package; refactor serde ( #8690 )
...
* move tool to separate package; refactor serde
* release note
* rm unused import
2025-01-09 12:30:13 +01:00
Stefano Fiorucci
5539f6c33f
refactor: improve serialization/deserialization of callables (to handle class methods and static methods) ( #8683 )
...
* progress
* refinements
* tidy up
* release note
2025-01-08 11:28:00 +01:00
Stefano Fiorucci
188b2a7f06
feat: support for tools in OpenAIChatGenerator
( #8666 )
...
* move chatmsg>openai conversion to chatmsg dataclass
* implementation and tests cleanup
* release note
* try fixing azure chat generator
* add serde test for toolinvoker
* small fix
2024-12-20 14:20:54 +00:00
Stefano Fiorucci
c8685aa141
refactor: update components to access ChatMessage.text
instead of content
( #8589 )
...
* introduce text property and deprecate content
* release note
* use chatmessage.text
* release note
* linting
2024-11-28 10:16:07 +00:00
Silvano Cerza
3ef8c081be
fix: OpenAIChatGenerator
and OpenAIGenerator
crashing when streaming with usage tracking ( #8558 )
...
* Fix OpenAIGenerator crashing with tracking usage with streaming enabled
* Fix OpenAIChatGenerator crashing with tracking usage with streaming enabled
* Add release notes
* Fix linting
2024-11-20 10:27:22 +01:00
Bohan Qu
2595e68050
feat: Add TTFT support in OpenAI chat generator ( #8444 )
...
* feat: Add TTFT support in OpenAI generators
* pylint fixes
* correct disable
---------
Co-authored-by: Vladimir Blagojevic <dovlex@gmail.com>
2024-10-31 16:56:17 +01:00
David S. Batista
97126eb544
fix: changing default model to gpt-4o-mini
on OpenAI API calls ( #8360 )
...
* chaning default model to gpt-4o-mini
* adding release notes
* fixing some missed tests
* fixing some more missed tests
* fixing one last missed test
* fixing linting issues
* making pylint happy about an end2end test
* chaning if test to walruss operator
* fixing azure embedder from ada to text-embedding-ada-002
2024-09-17 10:36:42 +02:00
Amna Mubashar
b374c528b2
Assign streaming_callback to OpenAIGenerator and OpenAIChatGenerator in run() method ( #8054 )
...
* Add optional parameter for streaming_callback in run() method
2024-07-24 15:49:19 +02:00
Carlos Fernández
686a4999cf
feat: widen support of env vars in OpenAI components ( #7653 )
...
* add enviroment variables to the _enviroment.py file
* add support for two of the three variables
* Add support for 'OPENAI_TIMEOUT' and 'OPENAI_MAX_RETRIES' on OpenAIDocument Ebedder.
* Replicate support for env vars in OpenAITextEmbedder.
* Add support for env vars in OpenAIGenerator..
* Add support for env vars in OpenAIChatGenerator.
* add docstrings and reno
* add params to __init__ in OpenAIDocumentEmbedder
* add params to __init__ in OpenAITextEmbedder
* make fully functional implementation of env vars and unit tests
* update reno
* Update haystack/components/embedders/openai_text_embedder.py
* reverse changes to telemetry/_enviroment.py
* Update haystack/components/embedders/openai_text_embedder.py
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-05-15 21:58:41 +00:00
Massimiliano Pippi
10c675d534
chore: add license header to all modules ( #7675 )
...
* add license header to modules
* check license header at linting time
2024-05-09 13:40:36 +00:00
Massimiliano Pippi
3a80c866c9
fix: do not use reserved attributes in the logger ( #7545 )
...
* avoid using reserved keywords in the logger
* make the tests independent from the log level
* relnotes
2024-04-12 14:07:18 +00:00
Madeesh Kannan
27d1af3068
feat!: Use Secret
for passing authentication secrets to components ( #6887 )
...
* feat!: Use `Secret` for passing authentication secrets to components
* Add comment to clarify type ignore
2024-02-05 13:17:01 +01:00
Massimiliano Pippi
acf4cd502f
refact: Rename helper function ( #6831 )
...
* change function name
* add api docs
* release notes
2024-01-26 16:00:02 +01:00
sahusiddharth
dbdeb8259e
feat: rename model_name
or model_name_or_path
to model
in generators ( #6715 )
...
* renamed model_name or model_name_or_path to model
* added release notes
* Update releasenotes/notes/renamed-model_name-or-model_name_or_path-to-model-184490cbb66c4d7c.yaml
---------
Co-authored-by: ZanSara <sara.zanzottera@deepset.ai>
2024-01-12 12:58:01 +01:00
Vladimir Blagojevic
506ab81d26
chore: Rename GPT generators, deprecate old names ( #6626 )
2023-12-22 19:37:29 +01:00
Vladimir Blagojevic
4d08be0c2a
feat: Update OpenAI Python Client in Haystack 2.x ( #6584 )
...
* Update openai python client
* Add release note
* Consolidate multiple mock_chat_completion into one
* Ensure all components have api_base_url, organization params
* Update tests
* Enable function calling
* Oversight
* Minor fixes, add streaming test mocks
* Apply suggestions from code review
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
* metadata -> meta
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
2023-12-21 16:21:24 +01:00
Stefano Fiorucci
7cc6080dfa
chore: replace metadata w meta in tests/examples ( #6612 )
...
* replace metadata w meta in tests/examples
* do not touch already broken e2e tests
* Revert "do not touch already broken e2e tests"
This reverts commit 1f911920d98954b57daacfe8d8ed02fd77d136db.
2023-12-21 14:09:31 +01:00
sahusiddharth
3d17e6ff76
changed metadata to meta ( #6605 )
2023-12-21 12:39:58 +01:00
Massimiliano Pippi
7c05f37a53
remove unit marker ( #6450 )
2023-11-29 19:24:25 +01:00
Silvano Cerza
e6637f5ec2
Fix all tests
2023-11-24 14:48:43 +01:00
Massimiliano Pippi
8adb8bbab8
Remove preview folder in test/
...
---------
Co-authored-by: Silvano Cerza <silvanocerza@gmail.com>
2023-11-24 11:52:55 +01:00