mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-25 14:06:24 +00:00
Making it possible to use "certainty" as a parameter for the weaviate similarity_search (#1218)
Checking if weaviate similarity_search kwargs contains "certainty" and use it accordingly. The minimal level of certainty must be a float, and it is computed by normalized distance.
This commit is contained in:
parent
42b892c21b
commit
3989c793fd
@ -268,12 +268,48 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "7fb44daa",
|
"source": [
|
||||||
"metadata": {},
|
"## Chat Vector DB with `search_distance`\n",
|
||||||
|
"If you are using a vector store that supports filtering by search distance, you can add a threshold value parameter."
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"collapsed": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"vectordbkwargs = {\"search_distance\": 0.9}"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"collapsed": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"qa = ChatVectorDBChain.from_llm(OpenAI(temperature=0), vectorstore, return_source_documents=True)\n",
|
||||||
|
"chat_history = []\n",
|
||||||
|
"query = \"What did the president say about Ketanji Brown Jackson\"\n",
|
||||||
|
"result = qa({\"question\": query, \"chat_history\": chat_history, \"vectordbkwargs\": vectordbkwargs})"
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"collapsed": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
"source": [
|
"source": [
|
||||||
"## Chat Vector DB with `map_reduce`\n",
|
"## Chat Vector DB with `map_reduce`\n",
|
||||||
"We can also use different types of combine document chains with the Chat Vector DB chain."
|
"We can also use different types of combine document chains with the Chat Vector DB chain."
|
||||||
]
|
],
|
||||||
|
"metadata": {
|
||||||
|
"collapsed": false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@ -486,7 +522,7 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"chat_history = [(query, result[\"answer\"])]\n",
|
"chat_history = [(query, result[\"answer\"])]\n",
|
||||||
"query = \"Did he mention who she suceeded\"\n",
|
"query = \"Did he mention who she suceeded\"\n",
|
||||||
"result = qa({\"question\": query, \"chat_history\": chat_history})"
|
"result = qa({\"question\": query, \"chat_history\": chat_history})\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
"""Wrapper around weaviate vector database."""
|
"""Wrapper around weaviate vector database."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any, Iterable, List, Optional
|
from typing import Any, Dict, Iterable, List, Optional
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from langchain.docstore.document import Document
|
from langchain.docstore.document import Document
|
||||||
@ -78,7 +78,9 @@ class Weaviate(VectorStore):
|
|||||||
self, query: str, k: int = 4, **kwargs: Any
|
self, query: str, k: int = 4, **kwargs: Any
|
||||||
) -> List[Document]:
|
) -> List[Document]:
|
||||||
"""Look up similar documents in weaviate."""
|
"""Look up similar documents in weaviate."""
|
||||||
content = {"concepts": [query]}
|
content: Dict[str, Any] = {"concepts": [query]}
|
||||||
|
if kwargs.get("search_distance"):
|
||||||
|
content["certainty"] = kwargs.get("search_distance")
|
||||||
query_obj = self._client.query.get(self._index_name, self._query_attrs)
|
query_obj = self._client.query.get(self._index_name, self._query_attrs)
|
||||||
result = query_obj.with_near_text(content).with_limit(k).do()
|
result = query_obj.with_near_text(content).with_limit(k).do()
|
||||||
docs = []
|
docs = []
|
||||||
|
Loading…
Reference in New Issue
Block a user