From b7925565b9a41ef25a002427a197fa175e539f43 Mon Sep 17 00:00:00 2001 From: Connor Shorten Date: Wed, 31 Jan 2024 16:14:53 -0500 Subject: [PATCH 1/4] Organize Integration Cookbook into /examples/integrations This commits refactors examples using third party integrations such as clarifai and weaviate into a separate repo. --- .../clarifai/clarifai_llm_retriever_example.ipynb | 0 examples/integrations/readme.md | 13 +++++++++++++ 2 files changed, 13 insertions(+) rename clarifai_llm_retriever_example.ipynb => examples/integrations/clarifai/clarifai_llm_retriever_example.ipynb (100%) create mode 100644 examples/integrations/readme.md diff --git a/clarifai_llm_retriever_example.ipynb b/examples/integrations/clarifai/clarifai_llm_retriever_example.ipynb similarity index 100% rename from clarifai_llm_retriever_example.ipynb rename to examples/integrations/clarifai/clarifai_llm_retriever_example.ipynb diff --git a/examples/integrations/readme.md b/examples/integrations/readme.md new file mode 100644 index 000000000..e4cc9fd7d --- /dev/null +++ b/examples/integrations/readme.md @@ -0,0 +1,13 @@ +# Integration Examples +This folder contains a cookbook of using DSPy with 3rd party integrations. + +DSPy currently supports integrations with: (sorted alphabetically): +- ChromadbRM +- ClarifaiRM +- MarqoRM +- MongoDBAtlasRM +- PineconeRM +- QdrantRM +- VectaraRM +- WeaviateRM +- YouRM \ No newline at end of file From 4a89116b475e59e14d0bdd51b1d6e2e17a0c75af Mon Sep 17 00:00:00 2001 From: Connor Shorten Date: Wed, 31 Jan 2024 16:22:42 -0500 Subject: [PATCH 2/4] Apologies, the other fix was wrong - 99.9% sure this is it Apologies, made a silly mistake in the last PR. Blueprinting `weaviate_rm_test` to avoid this in the future. --- dspy/retrieve/weaviate_rm.py | 3 +-- dspy/retrieve/weaviate_rm_test.py | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 dspy/retrieve/weaviate_rm_test.py diff --git a/dspy/retrieve/weaviate_rm.py b/dspy/retrieve/weaviate_rm.py index 8cc486868..6c77f996e 100644 --- a/dspy/retrieve/weaviate_rm.py +++ b/dspy/retrieve/weaviate_rm.py @@ -78,7 +78,6 @@ def forward(self, query_or_queries: Union[str, List[str]], k: Optional[int]) -> results = results["data"]["Get"][self._weaviate_collection_name] parsed_results = [result["content"] for result in results] - passages.extend(parsed_results) - passages.extend(dotdict({"long_text": d}) for d in results) + passages.extend(dotdict({"long_text": d}) for d in parsed_results) return dspy.Prediction(passages=passages) diff --git a/dspy/retrieve/weaviate_rm_test.py b/dspy/retrieve/weaviate_rm_test.py new file mode 100644 index 000000000..513894b2c --- /dev/null +++ b/dspy/retrieve/weaviate_rm_test.py @@ -0,0 +1,7 @@ +# ToDo + +# Start Weaviate Embedded + +# Add Toy Data (maybe an idea to restore a backup) + +# \ No newline at end of file From 7569eb091bc279289f70e066cb4944de1c3121b7 Mon Sep 17 00:00:00 2001 From: Connor Shorten Date: Wed, 31 Jan 2024 16:24:48 -0500 Subject: [PATCH 3/4] A little more progress on testing for development. --- dspy/retrieve/weaviate_rm_test.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dspy/retrieve/weaviate_rm_test.py b/dspy/retrieve/weaviate_rm_test.py index 513894b2c..ef919bdc3 100644 --- a/dspy/retrieve/weaviate_rm_test.py +++ b/dspy/retrieve/weaviate_rm_test.py @@ -4,4 +4,16 @@ # Add Toy Data (maybe an idea to restore a backup) -# \ No newline at end of file +# Connect DSPy + +# Test this API +""" +from dspy.retrieve.weaviate_rm import WeaviateRM +retriever_model = WeaviateRM("WeaviateBlogChunk", weaviate_client=weaviate_client) +dspy.settings.configure(rm=retriever_model) + +retrieve = dspy.Retrieve(k=1) +topK_passages = retrieve("what are the stages in planning, sanctioning and execution of public works").passages + +assert(type(topK_passages)) +""" \ No newline at end of file From 00e504b4fa7946017e45b2b5a9ec72a9dc77d237 Mon Sep 17 00:00:00 2001 From: Connor Shorten Date: Wed, 31 Jan 2024 16:25:12 -0500 Subject: [PATCH 4/4] Oops! Remove comment --- dspy/retrieve/weaviate_rm_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dspy/retrieve/weaviate_rm_test.py b/dspy/retrieve/weaviate_rm_test.py index ef919bdc3..fa2c97237 100644 --- a/dspy/retrieve/weaviate_rm_test.py +++ b/dspy/retrieve/weaviate_rm_test.py @@ -2,7 +2,7 @@ # Start Weaviate Embedded -# Add Toy Data (maybe an idea to restore a backup) +# Add Toy Data # Connect DSPy