[community][fix] Compatibility support to bump up wikibase-rest-api-client version (#27316)

**Description:**

This PR addresses the `TypeError: sequence item 0: expected str
instance, FluentValue found` error when invoking `WikidataQueryRun`. The
root cause was an incompatible version of the
`wikibase-rest-api-client`, which caused the tool to fail when handling
`FluentValue` objects instead of strings.

The current implementation only supports `wikibase-rest-api-client<0.2`,
but the latest version is `0.2.1`, where the current implementation
breaks. Additionally, the error message advises users to install the
latest version: [code
reference](https://github.com/langchain-ai/langchain/blob/master/libs/community/langchain_community/utilities/wikidata.py#L125C25-L125C32).
Therefore, this PR updates the tool to support the latest version of
`wikibase-rest-api-client`.

Key changes:
- Updated the handling of `FluentValue` objects to ensure compatibility
with the latest `wikibase-rest-api-client`.
- Removed the restriction to `wikibase-rest-api-client<0.2` and updated
to support the latest version (`0.2.1`).

**Issue:**

Fixes [#24093](https://github.com/langchain-ai/langchain/issues/24093) –
`TypeError: sequence item 0: expected str instance, FluentValue found`.

**Dependencies:**

- Upgraded `wikibase-rest-api-client` to the latest version to resolve
the issue.

---------

Co-authored-by: peiwen_zhang <peiwen_zhang@email.com>
Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: Chester Curme <chester.curme@gmail.com>
This commit is contained in:
Rock2z 2024-12-17 00:22:18 +08:00 committed by GitHub
parent a26c786bc5
commit 768e4a7fd4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 4 deletions

View File

@ -15,7 +15,7 @@
{
"cell_type": "code",
"execution_count": null,
"id": "3d9195d4",
"id": "d622c581",
"metadata": {
"vscode": {
"languageId": "shellscript"
@ -23,7 +23,7 @@
},
"outputs": [],
"source": [
"%pip install --upgrade --quiet \"wikibase-rest-api-client<0.2\" mediawikiapi"
"%pip install --upgrade --quiet wikibase-rest-api-client mediawikiapi"
]
},
{
@ -110,7 +110,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.5"
"version": "3.12.5"
}
},
"nbformat": 4,

View File

@ -147,7 +147,9 @@ class WikidataAPIWrapper(BaseModel):
doc_lines.append(f"Aliases: {', '.join(resp.aliases)}")
for prop, values in resp.statements.items():
if values:
doc_lines.append(f"{prop.label}: {', '.join(values)}")
doc_lines.append(
f"{prop.label}: {', '.join([v.value or 'unknown' for v in values])}"
)
return Document(
page_content=("\n".join(doc_lines))[: self.doc_content_chars_max],