Skip to content

Commit

Permalink
[community][fix] Compatibility support to bump up wikibase-rest-api-c…
Browse files Browse the repository at this point in the history
…lient 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](#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 <[email protected]>
Co-authored-by: Erick Friis <[email protected]>
Co-authored-by: Chester Curme <[email protected]>
  • Loading branch information
4 people authored Dec 16, 2024
1 parent a26c786 commit 768e4a7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 3 additions & 3 deletions docs/docs/integrations/tools/wikidata.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@
{
"cell_type": "code",
"execution_count": null,
"id": "3d9195d4",
"id": "d622c581",
"metadata": {
"vscode": {
"languageId": "shellscript"
}
},
"outputs": [],
"source": [
"%pip install --upgrade --quiet \"wikibase-rest-api-client<0.2\" mediawikiapi"
"%pip install --upgrade --quiet wikibase-rest-api-client mediawikiapi"
]
},
{
Expand Down Expand Up @@ -110,7 +110,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.5"
"version": "3.12.5"
}
},
"nbformat": 4,
Expand Down
4 changes: 3 additions & 1 deletion libs/community/langchain_community/utilities/wikidata.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,9 @@ def _item_to_document(self, qid: str) -> Optional[Document]:
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],
Expand Down

0 comments on commit 768e4a7

Please sign in to comment.