Skip to content

Commit 55b0961

Browse files
Upgrade openai, openai-messages-token-helper, for gpt-4o-mini support (#1893)
* Bump the python-requirements group across 1 directory with 43 updates Bumps the python-requirements group with 43 updates in the / directory: | Package | From | To | | --- | --- | --- | | [aiohttp](https://github.com/aio-libs/aiohttp) | `3.9.5` | `3.10.1` | | [attrs](https://github.com/sponsors/hynek) | `23.2.0` | `24.2.0` | | [azure-monitor-opentelemetry](https://github.com/Azure/azure-sdk-for-python) | `1.6.0` | `1.6.1` | | [azure-monitor-opentelemetry-exporter](https://github.com/Azure/azure-sdk-for-python) | `1.0.0b27` | `1.0.0b28` | | [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.21.0` | `12.22.0` | | [cffi](https://github.com/python-cffi/cffi) | `1.16.0` | `1.17.0` | | [fixedint](https://github.com/nneonneo/fixedint) | `0.1.6` | `0.2.0` | | [importlib-metadata](https://github.com/python/importlib_metadata) | `7.1.0` | `8.2.0` | | [microsoft-kiota-serialization-json](https://github.com/microsoft/kiota) | `1.2.0` | `1.3.0` | | [msgraph-sdk](https://github.com/microsoftgraph/msgraph-sdk-python) | `1.1.0` | `1.5.4` | | [openai](https://github.com/openai/openai-python) | `1.37.0` | `1.40.1` | | [openai-messages-token-helper](https://github.com/pamelafox/openai-messages-token-helper) | `0.1.5` | `0.1.8` | | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.26.0` | | [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-aiohttp-client](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-httpx](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-openai](https://github.com/traceloop/openllmetry) | `0.25.5` | `0.26.5` | | [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.25.0` | `1.26.0` | | [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.46b0` | `0.47b0` | | opentelemetry-semantic-conventions-ai | `0.3.4` | `0.4.1` | | [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.46b0` | `0.47b0` | | [psutil](https://github.com/giampaolo/psutil) | `5.9.8` | `6.0.0` | | [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.20.1` | `2.21.0` | | [pyjwt[crypto]](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.9.0` | | [pymupdf](https://github.com/pymupdf/pymupdf) | `1.24.7` | `1.24.9` | | [pymupdfb](https://github.com/pymupdf/pymupdf) | `1.24.6` | `1.24.9` | | [regex](https://github.com/mrabarnett/mrab-regex) | `2024.5.15` | `2024.7.24` | | [std-uritemplate](https://github.com/std-uritemplate/std-uritemplate) | `1.0.3` | `1.0.5` | | [tenacity](https://github.com/jd/tenacity) | `8.5.0` | `9.0.0` | | [time-machine](https://github.com/adamchainz/time-machine) | `2.14.2` | `2.15.0` | | [tqdm](https://github.com/tqdm/tqdm) | `4.66.4` | `4.66.5` | | [types-html5lib](https://github.com/python/typeshed) | `1.1.11.20240228` | `1.1.11.20240806` | | [uvicorn](https://github.com/encode/uvicorn) | `0.30.3` | `0.30.5` | Updates `aiohttp` from 3.9.5 to 3.10.1 - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](aio-libs/aiohttp@v3.9.5...v3.10.1) Updates `attrs` from 23.2.0 to 24.2.0 - [Commits](https://github.com/sponsors/hynek/commits) Updates `azure-monitor-opentelemetry` from 1.6.0 to 1.6.1 - [Release notes](https://github.com/Azure/azure-sdk-for-python/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/doc/esrp_release.md) - [Commits](Azure/azure-sdk-for-python@azure-monitor-opentelemetry_1.6.0...azure-monitor-opentelemetry_1.6.1) Updates `azure-monitor-opentelemetry-exporter` from 1.0.0b27 to 1.0.0b28 - [Release notes](https://github.com/Azure/azure-sdk-for-python/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/doc/esrp_release.md) - [Commits](Azure/azure-sdk-for-python@azure-monitor-opentelemetry-exporter_1.0.0b27...azure-monitor-opentelemetry-exporter_1.0.0b28) Updates `azure-storage-blob` from 12.21.0 to 12.22.0 - [Release notes](https://github.com/Azure/azure-sdk-for-python/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-python/blob/main/doc/esrp_release.md) - [Commits](Azure/azure-sdk-for-python@azure-storage-blob_12.21.0...azure-storage-blob_12.22.0) Updates `cffi` from 1.16.0 to 1.17.0 - [Release notes](https://github.com/python-cffi/cffi/releases) - [Commits](python-cffi/cffi@v1.16.0...v1.17.0) Updates `fixedint` from 0.1.6 to 0.2.0 - [Changelog](https://github.com/nneonneo/fixedint/blob/master/CHANGES) - [Commits](nneonneo/fixedint@v0.1.6...v0.2.0) Updates `importlib-metadata` from 7.1.0 to 8.2.0 - [Release notes](https://github.com/python/importlib_metadata/releases) - [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst) - [Commits](python/importlib_metadata@v7.1.0...v8.2.0) Updates `microsoft-kiota-serialization-json` from 1.2.0 to 1.3.0 - [Release notes](https://github.com/microsoft/kiota/releases) - [Changelog](https://github.com/microsoft/kiota/blob/main/CHANGELOG.md) - [Commits](microsoft/kiota@v1.2.0...v1.3.0) Updates `msgraph-sdk` from 1.1.0 to 1.5.4 - [Release notes](https://github.com/microsoftgraph/msgraph-sdk-python/releases) - [Changelog](https://github.com/microsoftgraph/msgraph-sdk-python/blob/main/CHANGELOG.md) - [Commits](microsoftgraph/msgraph-sdk-python@v1.1.0...v1.5.4) Updates `openai` from 1.37.0 to 1.40.1 - [Release notes](https://github.com/openai/openai-python/releases) - [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md) - [Commits](openai/openai-python@v1.37.0...v1.40.1) Updates `openai-messages-token-helper` from 0.1.5 to 0.1.8 - [Changelog](https://github.com/pamelafox/openai-messages-token-helper/blob/main/CHANGELOG.md) - [Commits](https://github.com/pamelafox/openai-messages-token-helper/commits) Updates `opentelemetry-api` from 1.25.0 to 1.26.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-python@v1.25.0...v1.26.0) Updates `opentelemetry-instrumentation` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-aiohttp-client` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-asgi` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-dbapi` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-django` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-fastapi` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-flask` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-httpx` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-openai` from 0.25.5 to 0.26.5 - [Release notes](https://github.com/traceloop/openllmetry/releases) - [Changelog](https://github.com/traceloop/openllmetry/blob/main/CHANGELOG.md) - [Commits](traceloop/openllmetry@0.25.5...0.26.5) Updates `opentelemetry-instrumentation-psycopg2` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-requests` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-urllib` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-urllib3` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-instrumentation-wsgi` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `opentelemetry-sdk` from 1.25.0 to 1.26.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-python@v1.25.0...v1.26.0) Updates `opentelemetry-semantic-conventions` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/commits) Updates `opentelemetry-semantic-conventions-ai` from 0.3.4 to 0.4.1 Updates `opentelemetry-util-http` from 0.46b0 to 0.47b0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits) Updates `psutil` from 5.9.8 to 6.0.0 - [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst) - [Commits](giampaolo/psutil@release-5.9.8...release-6.0.0) Updates `pydantic-core` from 2.20.1 to 2.21.0 - [Release notes](https://github.com/pydantic/pydantic-core/releases) - [Commits](pydantic/pydantic-core@v2.20.1...v2.21.0) Updates `pyjwt[crypto]` from 2.8.0 to 2.9.0 - [Release notes](https://github.com/jpadilla/pyjwt/releases) - [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst) - [Commits](jpadilla/pyjwt@2.8.0...2.9.0) Updates `pymupdf` from 1.24.7 to 1.24.9 - [Release notes](https://github.com/pymupdf/pymupdf/releases) - [Changelog](https://github.com/pymupdf/PyMuPDF/blob/main/changes.txt) - [Commits](pymupdf/PyMuPDF@1.24.7...1.24.9) Updates `pymupdfb` from 1.24.6 to 1.24.9 - [Release notes](https://github.com/pymupdf/pymupdf/releases) - [Changelog](https://github.com/pymupdf/PyMuPDF/blob/main/changes.txt) - [Commits](pymupdf/PyMuPDF@1.24.6...1.24.9) Updates `regex` from 2024.5.15 to 2024.7.24 - [Changelog](https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt) - [Commits](mrabarnett/mrab-regex@2024.5.15...2024.7.24) Updates `std-uritemplate` from 1.0.3 to 1.0.5 - [Release notes](https://github.com/std-uritemplate/std-uritemplate/releases) - [Commits](std-uritemplate/std-uritemplate@1.0.3...1.0.5) Updates `tenacity` from 8.5.0 to 9.0.0 - [Release notes](https://github.com/jd/tenacity/releases) - [Commits](jd/tenacity@8.5.0...9.0.0) Updates `time-machine` from 2.14.2 to 2.15.0 - [Changelog](https://github.com/adamchainz/time-machine/blob/main/CHANGELOG.rst) - [Commits](adamchainz/time-machine@2.14.2...2.15.0) Updates `tqdm` from 4.66.4 to 4.66.5 - [Release notes](https://github.com/tqdm/tqdm/releases) - [Commits](tqdm/tqdm@v4.66.4...v4.66.5) Updates `types-html5lib` from 1.1.11.20240228 to 1.1.11.20240806 - [Commits](https://github.com/python/typeshed/commits) Updates `uvicorn` from 0.30.3 to 0.30.5 - [Release notes](https://github.com/encode/uvicorn/releases) - [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md) - [Commits](Kludex/uvicorn@0.30.3...0.30.5) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: attrs dependency-type: direct:production update-type: version-update:semver-major dependency-group: python-requirements - dependency-name: azure-monitor-opentelemetry dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: azure-monitor-opentelemetry-exporter dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: azure-storage-blob dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: cffi dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: fixedint dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: importlib-metadata dependency-type: direct:production update-type: version-update:semver-major dependency-group: python-requirements - dependency-name: microsoft-kiota-serialization-json dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: msgraph-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: openai dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: openai-messages-token-helper dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: opentelemetry-api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-aiohttp-client dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-asgi dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-dbapi dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-django dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-fastapi dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-flask dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-httpx dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-openai dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-psycopg2 dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-requests dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-urllib dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-urllib3 dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-instrumentation-wsgi dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: opentelemetry-semantic-conventions dependency-type: direct:production dependency-group: python-requirements - dependency-name: opentelemetry-semantic-conventions-ai dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: opentelemetry-util-http dependency-type: direct:production dependency-group: python-requirements - dependency-name: psutil dependency-type: direct:production update-type: version-update:semver-major dependency-group: python-requirements - dependency-name: pydantic-core dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: pyjwt[crypto] dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: pymupdf dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: pymupdfb dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: std-uritemplate dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: tenacity dependency-type: direct:production update-type: version-update:semver-major dependency-group: python-requirements - dependency-name: time-machine dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-requirements - dependency-name: tqdm dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: types-html5lib dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements - dependency-name: uvicorn dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-requirements ... Signed-off-by: dependabot[bot] <[email protected]> * Update requirements * Update for latest OpenAI SDK, dont pass down unneeded bits --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pamela Fox <[email protected]>
1 parent a8b1202 commit 55b0961

File tree

63 files changed

+167
-365
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+167
-365
lines changed

app/backend/approaches/chatapproach.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ def get_search_query(self, chat_completion: ChatCompletion, user_query: str):
7575
return query_text
7676
return user_query
7777

78-
def extract_followup_questions(self, content: str):
78+
def extract_followup_questions(self, content: Optional[str]):
79+
if content is None:
80+
return content, []
7981
return content.split("<<")[0], re.findall(r"<<([^>>]+)>>", content)
8082

8183
async def run_without_streaming(
@@ -89,15 +91,17 @@ async def run_without_streaming(
8991
messages, overrides, auth_claims, should_stream=False
9092
)
9193
chat_completion_response: ChatCompletion = await chat_coroutine
92-
chat_resp = chat_completion_response.model_dump() # Convert to dict to make it JSON serializable
93-
chat_resp = chat_resp["choices"][0]
94-
chat_resp["context"] = extra_info
94+
content = chat_completion_response.choices[0].message.content
95+
role = chat_completion_response.choices[0].message.role
9596
if overrides.get("suggest_followup_questions"):
96-
content, followup_questions = self.extract_followup_questions(chat_resp["message"]["content"])
97-
chat_resp["message"]["content"] = content
98-
chat_resp["context"]["followup_questions"] = followup_questions
99-
chat_resp["session_state"] = session_state
100-
return chat_resp
97+
content, followup_questions = self.extract_followup_questions(content)
98+
extra_info["followup_questions"] = followup_questions
99+
chat_app_response = {
100+
"message": {"content": content, "role": role},
101+
"context": extra_info,
102+
"session_state": session_state,
103+
}
104+
return chat_app_response
101105

102106
async def run_with_streaming(
103107
self,
@@ -117,7 +121,12 @@ async def run_with_streaming(
117121
# "2023-07-01-preview" API version has a bug where first response has empty choices
118122
event = event_chunk.model_dump() # Convert pydantic model to dict
119123
if event["choices"]:
120-
completion = {"delta": event["choices"][0]["delta"]}
124+
completion = {
125+
"delta": {
126+
"content": event["choices"][0]["delta"].get("content"),
127+
"role": event["choices"][0]["delta"]["role"],
128+
}
129+
}
121130
# if event contains << and not >>, it is start of follow-up question, truncate
122131
content = completion["delta"].get("content")
123132
content = content or "" # content may either not exist in delta, or explicitly be None

app/backend/approaches/retrievethenread.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,15 @@ async def run(
124124
max_tokens=self.chatgpt_token_limit - response_token_limit,
125125
)
126126

127-
chat_completion = (
128-
await self.openai_client.chat.completions.create(
129-
# Azure OpenAI takes the deployment name as the model name
130-
model=self.chatgpt_deployment if self.chatgpt_deployment else self.chatgpt_model,
131-
messages=updated_messages,
132-
temperature=overrides.get("temperature", 0.3),
133-
max_tokens=response_token_limit,
134-
n=1,
135-
seed=seed,
136-
)
137-
).model_dump()
127+
chat_completion = await self.openai_client.chat.completions.create(
128+
# Azure OpenAI takes the deployment name as the model name
129+
model=self.chatgpt_deployment if self.chatgpt_deployment else self.chatgpt_model,
130+
messages=updated_messages,
131+
temperature=overrides.get("temperature", 0.3),
132+
max_tokens=response_token_limit,
133+
n=1,
134+
seed=seed,
135+
)
138136

139137
data_points = {"text": sources_content}
140138
extra_info = {
@@ -168,8 +166,11 @@ async def run(
168166
],
169167
}
170168

171-
completion = {}
172-
completion["message"] = chat_completion["choices"][0]["message"]
173-
completion["context"] = extra_info
174-
completion["session_state"] = session_state
175-
return completion
169+
return {
170+
"message": {
171+
"content": chat_completion.choices[0].message.content,
172+
"role": chat_completion.choices[0].message.role,
173+
},
174+
"context": extra_info,
175+
"session_state": session_state,
176+
}

app/backend/approaches/retrievethenreadvision.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -142,16 +142,14 @@ async def run(
142142
new_user_content=user_content,
143143
max_tokens=self.gpt4v_token_limit - response_token_limit,
144144
)
145-
chat_completion = (
146-
await self.openai_client.chat.completions.create(
147-
model=self.gpt4v_deployment if self.gpt4v_deployment else self.gpt4v_model,
148-
messages=updated_messages,
149-
temperature=overrides.get("temperature", 0.3),
150-
max_tokens=response_token_limit,
151-
n=1,
152-
seed=seed,
153-
)
154-
).model_dump()
145+
chat_completion = await self.openai_client.chat.completions.create(
146+
model=self.gpt4v_deployment if self.gpt4v_deployment else self.gpt4v_model,
147+
messages=updated_messages,
148+
temperature=overrides.get("temperature", 0.3),
149+
max_tokens=response_token_limit,
150+
n=1,
151+
seed=seed,
152+
)
155153

156154
data_points = {
157155
"text": sources_content,
@@ -190,8 +188,11 @@ async def run(
190188
],
191189
}
192190

193-
completion = {}
194-
completion["message"] = chat_completion["choices"][0]["message"]
195-
completion["context"] = extra_info
196-
completion["session_state"] = session_state
197-
return completion
191+
return {
192+
"message": {
193+
"content": chat_completion.choices[0].message.content,
194+
"role": chat_completion.choices[0].message.role,
195+
},
196+
"context": extra_info,
197+
"session_state": session_state,
198+
}

app/backend/requirements.txt

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
#
77
aiofiles==24.1.0
88
# via quart
9-
aiohttp==3.9.5
9+
aiohappyeyeballs==2.3.5
10+
# via aiohttp
11+
aiohttp==3.10.1
1012
# via
1113
# -r requirements.in
1214
# microsoft-kiota-authentication-azure
@@ -20,7 +22,7 @@ anyio==4.4.0
2022
# openai
2123
asgiref==3.8.1
2224
# via opentelemetry-instrumentation-asgi
23-
attrs==23.2.0
25+
attrs==24.2.0
2426
# via aiohttp
2527
azure-ai-documentintelligence==1.0.0b3
2628
# via -r requirements.in
@@ -46,13 +48,13 @@ azure-identity==1.17.1
4648
# via
4749
# -r requirements.in
4850
# msgraph-sdk
49-
azure-monitor-opentelemetry==1.6.0
51+
azure-monitor-opentelemetry==1.6.1
5052
# via -r requirements.in
51-
azure-monitor-opentelemetry-exporter==1.0.0b27
53+
azure-monitor-opentelemetry-exporter==1.0.0b28
5254
# via azure-monitor-opentelemetry
5355
azure-search-documents==11.6.0b1
5456
# via -r requirements.in
55-
azure-storage-blob==12.21.0
57+
azure-storage-blob==12.22.0
5658
# via
5759
# -r requirements.in
5860
# azure-storage-file-datalake
@@ -70,7 +72,7 @@ certifi==2024.7.4
7072
# httpx
7173
# msrest
7274
# requests
73-
cffi==1.16.0
75+
cffi==1.17.0
7476
# via cryptography
7577
charset-normalizer==3.3.2
7678
# via requests
@@ -87,7 +89,9 @@ cryptography==43.0.0
8789
# msal
8890
# pyjwt
8991
deprecated==1.2.14
90-
# via opentelemetry-api
92+
# via
93+
# opentelemetry-api
94+
# opentelemetry-semantic-conventions
9195
distro==1.9.0
9296
# via openai
9397
fixedint==0.1.6
@@ -127,7 +131,7 @@ idna==3.7
127131
# httpx
128132
# requests
129133
# yarl
130-
importlib-metadata==7.1.0
134+
importlib-metadata==8.0.0
131135
# via
132136
# opentelemetry-api
133137
# opentelemetry-instrumentation-flask
@@ -146,6 +150,8 @@ jinja2==3.1.4
146150
# via
147151
# flask
148152
# quart
153+
jiter==0.5.0
154+
# via openai
149155
markupsafe==2.1.5
150156
# via
151157
# jinja2
@@ -167,7 +173,7 @@ microsoft-kiota-http==1.3.2
167173
# via
168174
# msgraph-core
169175
# msgraph-sdk
170-
microsoft-kiota-serialization-json==1.2.0
176+
microsoft-kiota-serialization-json==1.3.0
171177
# via msgraph-sdk
172178
microsoft-kiota-serialization-text==1.0.0
173179
# via msgraph-sdk
@@ -192,13 +198,13 @@ numpy==2.0.1
192198
# via -r requirements.in
193199
oauthlib==3.2.2
194200
# via requests-oauthlib
195-
openai==1.37.0
201+
openai==1.40.1
196202
# via
197203
# -r requirements.in
198204
# openai-messages-token-helper
199-
openai-messages-token-helper==0.1.5
205+
openai-messages-token-helper==0.1.9
200206
# via -r requirements.in
201-
opentelemetry-api==1.25.0
207+
opentelemetry-api==1.26.0
202208
# via
203209
# azure-core-tracing-opentelemetry
204210
# azure-monitor-opentelemetry-exporter
@@ -221,7 +227,7 @@ opentelemetry-api==1.25.0
221227
# opentelemetry-instrumentation-wsgi
222228
# opentelemetry-sdk
223229
# opentelemetry-semantic-conventions
224-
opentelemetry-instrumentation==0.46b0
230+
opentelemetry-instrumentation==0.47b0
225231
# via
226232
# opentelemetry-instrumentation-aiohttp-client
227233
# opentelemetry-instrumentation-asgi
@@ -236,49 +242,49 @@ opentelemetry-instrumentation==0.46b0
236242
# opentelemetry-instrumentation-urllib
237243
# opentelemetry-instrumentation-urllib3
238244
# opentelemetry-instrumentation-wsgi
239-
opentelemetry-instrumentation-aiohttp-client==0.46b0
245+
opentelemetry-instrumentation-aiohttp-client==0.47b0
240246
# via -r requirements.in
241-
opentelemetry-instrumentation-asgi==0.46b0
247+
opentelemetry-instrumentation-asgi==0.47b0
242248
# via
243249
# -r requirements.in
244250
# opentelemetry-instrumentation-fastapi
245-
opentelemetry-instrumentation-dbapi==0.46b0
251+
opentelemetry-instrumentation-dbapi==0.47b0
246252
# via opentelemetry-instrumentation-psycopg2
247-
opentelemetry-instrumentation-django==0.46b0
253+
opentelemetry-instrumentation-django==0.47b0
248254
# via azure-monitor-opentelemetry
249-
opentelemetry-instrumentation-fastapi==0.46b0
255+
opentelemetry-instrumentation-fastapi==0.47b0
250256
# via azure-monitor-opentelemetry
251-
opentelemetry-instrumentation-flask==0.46b0
257+
opentelemetry-instrumentation-flask==0.47b0
252258
# via azure-monitor-opentelemetry
253-
opentelemetry-instrumentation-httpx==0.46b0
259+
opentelemetry-instrumentation-httpx==0.47b0
254260
# via -r requirements.in
255-
opentelemetry-instrumentation-openai==0.25.5
261+
opentelemetry-instrumentation-openai==0.26.5
256262
# via -r requirements.in
257-
opentelemetry-instrumentation-psycopg2==0.46b0
263+
opentelemetry-instrumentation-psycopg2==0.47b0
258264
# via azure-monitor-opentelemetry
259-
opentelemetry-instrumentation-requests==0.46b0
265+
opentelemetry-instrumentation-requests==0.47b0
260266
# via
261267
# -r requirements.in
262268
# azure-monitor-opentelemetry
263-
opentelemetry-instrumentation-urllib==0.46b0
269+
opentelemetry-instrumentation-urllib==0.47b0
264270
# via azure-monitor-opentelemetry
265-
opentelemetry-instrumentation-urllib3==0.46b0
271+
opentelemetry-instrumentation-urllib3==0.47b0
266272
# via azure-monitor-opentelemetry
267-
opentelemetry-instrumentation-wsgi==0.46b0
273+
opentelemetry-instrumentation-wsgi==0.47b0
268274
# via
269275
# opentelemetry-instrumentation-django
270276
# opentelemetry-instrumentation-flask
271277
opentelemetry-resource-detector-azure==0.1.5
272278
# via azure-monitor-opentelemetry
273-
opentelemetry-sdk==1.25.0
279+
opentelemetry-sdk==1.26.0
274280
# via
275281
# azure-monitor-opentelemetry
276282
# azure-monitor-opentelemetry-exporter
277283
# microsoft-kiota-abstractions
278284
# microsoft-kiota-authentication-azure
279285
# microsoft-kiota-http
280286
# opentelemetry-resource-detector-azure
281-
opentelemetry-semantic-conventions==0.46b0
287+
opentelemetry-semantic-conventions==0.47b0
282288
# via
283289
# opentelemetry-instrumentation-aiohttp-client
284290
# opentelemetry-instrumentation-asgi
@@ -293,9 +299,9 @@ opentelemetry-semantic-conventions==0.46b0
293299
# opentelemetry-instrumentation-urllib3
294300
# opentelemetry-instrumentation-wsgi
295301
# opentelemetry-sdk
296-
opentelemetry-semantic-conventions-ai==0.3.4
302+
opentelemetry-semantic-conventions-ai==0.4.1
297303
# via opentelemetry-instrumentation-openai
298-
opentelemetry-util-http==0.46b0
304+
opentelemetry-util-http==0.47b0
299305
# via
300306
# opentelemetry-instrumentation-aiohttp-client
301307
# opentelemetry-instrumentation-asgi
@@ -327,13 +333,13 @@ pydantic==2.8.2
327333
# via openai
328334
pydantic-core==2.20.1
329335
# via pydantic
330-
pyjwt[crypto]==2.8.0
336+
pyjwt[crypto]==2.9.0
331337
# via
338+
# -r requirements.in
332339
# msal
333-
# pyjwt
334-
pymupdf==1.24.7
340+
pymupdf==1.24.9
335341
# via -r requirements.in
336-
pymupdfb==1.24.6
342+
pymupdfb==1.24.9
337343
# via pymupdf
338344
pypdf==4.3.1
339345
# via -r requirements.in
@@ -348,7 +354,7 @@ quart==0.19.6
348354
# quart-cors
349355
quart-cors==0.7.0
350356
# via -r requirements.in
351-
regex==2024.5.15
357+
regex==2024.7.24
352358
# via tiktoken
353359
requests==2.32.3
354360
# via
@@ -362,7 +368,6 @@ requests-oauthlib==2.0.0
362368
six==1.16.0
363369
# via
364370
# azure-core
365-
# ecdsa
366371
# isodate
367372
# python-dateutil
368373
sniffio==1.3.1
@@ -372,22 +377,22 @@ sniffio==1.3.1
372377
# openai
373378
soupsieve==2.5
374379
# via beautifulsoup4
375-
std-uritemplate==1.0.3
380+
std-uritemplate==1.0.5
376381
# via microsoft-kiota-abstractions
377-
tenacity==8.5.0
382+
tenacity==9.0.0
378383
# via -r requirements.in
379384
tiktoken==0.7.0
380385
# via
381386
# -r requirements.in
382387
# openai-messages-token-helper
383388
# opentelemetry-instrumentation-openai
384-
time-machine==2.14.2
389+
time-machine==2.15.0
385390
# via pendulum
386-
tqdm==4.66.4
391+
tqdm==4.66.5
387392
# via openai
388393
types-beautifulsoup4==4.12.0.20240511
389394
# via -r requirements.in
390-
types-html5lib==1.1.11.20240228
395+
types-html5lib==1.1.11.20240806
391396
# via types-beautifulsoup4
392397
types-pillow==10.2.0.20240520
393398
# via -r requirements.in
@@ -406,7 +411,7 @@ tzdata==2024.1
406411
# via pendulum
407412
urllib3==2.2.2
408413
# via requests
409-
uvicorn==0.30.3
414+
uvicorn==0.30.5
410415
# via -r requirements.in
411416
werkzeug==3.0.3
412417
# via

0 commit comments

Comments
 (0)