Summarize retrieved edges to compact string [COG-1181] (#522)
<!-- .github/pull_request_template.md --> ## Description Summarize retrieved edges to compact string with no redundancies. Example: **Before summarization:** CV example: visual innovations -- employs -- visual innovations --- CV 4: Not Relevant Name: David Thompson Contact Information: Email: david.thompson@example.com Phone: (555) 456-7890 Summary: Creative Graphic Designer with over 8 years of experience in visual design and branding. Proficient in Adobe Creative Suite and passionate about creating compelling visuals. Education: B.F.A. in Graphic Design, Rhode Island School of Design (2012) Experience: Senior Graphic Designer, CreativeWorks Agency (2015 – Present) Led design projects for clients in various industries. Created branding materials that increased client engagement by 30%. Graphic Designer, Visual Innovations (2012 – 2015) Designed marketing collateral, including brochures, logos, and websites. Collaborated with the marketing team to develop cohesive brand strategies. Skills: Design Software: Adobe Photoshop, Illustrator, InDesign Web Design: HTML, CSS Specialties: Branding and Identity, Typography -- contains -- creativeworks agency --- CV 4: Not Relevant Name: David Thompson Contact Information: Email: david.thompson@example.com Phone: (555) 456-7890 Summary: Creative Graphic Designer with over 8 years of experience in visual design and branding. Proficient in Adobe Creative Suite and passionate about creating compelling visuals. Education: B.F.A. in Graphic Design, Rhode Island School of Design (2012) Experience: Senior Graphic Designer, CreativeWorks Agency (2015 – Present) Led design projects for clients in various industries. Created branding materials that increased client engagement by 30%. Graphic Designer, Visual Innovations (2012 – 2015) Designed marketing collateral, including brochures, logos, and websites. Collaborated with the marketing team to develop cohesive brand strategies. Skills: Design Software: Adobe Photoshop, Illustrator, InDesign Web Design: HTML, CSS Specialties: Branding and Identity, Typography -- contains -- visual innovations --- CV 4: Not Relevant Name: David Thompson Contact Information: Email: david.thompson@example.com Phone: (555) 456-7890 Summary: Creative Graphic Designer with over 8 years of experience in visual design and branding. Proficient in Adobe Creative Suite and passionate about creating compelling visuals. Education: B.F.A. in Graphic Design, Rhode Island School of Design (2012) Experience: Senior Graphic Designer, CreativeWorks Agency (2015 – Present) Led design projects for clients in various industries. Created branding materials that increased client engagement by 30%. Graphic Designer, Visual Innovations (2012 – 2015) Designed marketing collateral, including brochures, logos, and websites. Collaborated with the marketing team to develop cohesive brand strategies. Skills: Design Software: Adobe Photoshop, Illustrator, InDesign Web Design: HTML, CSS Specialties: Branding and Identity, Typography -- contains -- rhode island school of design --- Experienced Graphic Designer with over 8 years in visual design and branding, specializing in Adobe Creative Suite and enthusiastic about producing engaging visuals. -- made_from -- CV 4: Not Relevant Name: David Thompson Contact Information: Email: david.thompson@example.com Phone: (555) 456-7890 Summary: Creative Graphic Designer with over 8 years of experience in visual design and branding. Proficient in Adobe Creative Suite and passionate about creating compelling visuals. Education: B.F.A. in Graphic Design, Rhode Island School of Design (2012) Experience: Senior Graphic Designer, CreativeWorks Agency (2015 – Present) Led design projects for clients in various industries. Created branding materials that increased client engagement by 30%. Graphic Designer, Visual Innovations (2012 – 2015) Designed marketing collateral, including brochures, logos, and websites. Collaborated with the marketing team to develop cohesive brand strategies. Skills: Design Software: Adobe Photoshop, Illustrator, InDesign Web Design: HTML, CSS Specialties: Branding and Identity, Typography **After summarization:** David Thompson is a Creative Graphic Designer with over 8 years of experience in visual design and branding, proficient in Adobe Creative Suite and passionate about creating compelling visuals. He holds a B.F.A. in Graphic Design from the Rhode Island School of Design (2012). His experience includes working as a Senior Graphic Designer at CreativeWorks Agency (2015 – Present), where he led design projects and created branding materials that increased client engagement by 30%, and as a Graphic Designer at Visual Innovations (2012 – 2015), where he designed marketing collateral and collaborated with the marketing team to develop cohesive brand strategies. His skills include design software such as Adobe Photoshop, Illustrator, and InDesign, as well as web design in HTML and CSS, with specialties in Branding and Identity and Typography. 1. David Thompson employs his skills in visual design and branding. 2. David Thompson contains experience from CreativeWorks Agency. 3. David Thompson contains experience from Visual Innovations. 4. David Thompson made his qualifications from the Rhode Island School of Design. ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a summarization engine that converts relationship-based inputs into concise, natural sentences. - Expanded search capabilities with a new query option that generates graph summaries, providing insightful and aggregated results from graph data. - Enhanced asynchronous processing for improved performance in handling graph data queries and summarization. - Added flexibility in specifying string conversion methods for graph edge retrieval. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Boris <boris@topoteretes.com>
This commit is contained in:
parent
fcb9298d4f
commit
4efdb29187
6 changed files with 40 additions and 3 deletions
|
|
@ -0,0 +1,3 @@
|
|||
You are a top-tier summarization engine that is meant to eliminate redundancies.
|
||||
The input contains relationships enclosed by \"--\" .
|
||||
Summarize the input into natural sentences, listing all relationships.
|
||||
|
|
@ -14,6 +14,7 @@ from cognee.tasks.graph import query_graph_connections
|
|||
from cognee.tasks.summarization import query_summaries
|
||||
from cognee.tasks.completion import query_completion
|
||||
from cognee.tasks.completion import graph_query_completion
|
||||
from cognee.tasks.completion import graph_query_summary_completion
|
||||
from ..operations import log_query, log_result
|
||||
|
||||
|
||||
|
|
@ -49,6 +50,7 @@ async def specific_search(query_type: SearchType, query: str, user: User) -> lis
|
|||
SearchType.CHUNKS: query_chunks,
|
||||
SearchType.COMPLETION: query_completion,
|
||||
SearchType.GRAPH_COMPLETION: graph_query_completion,
|
||||
SearchType.GRAPH_SUMMARY_COMPLETION: graph_query_summary_completion,
|
||||
SearchType.CODE: code_graph_retrieval,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,4 +7,5 @@ class SearchType(Enum):
|
|||
CHUNKS = "CHUNKS"
|
||||
COMPLETION = "COMPLETION"
|
||||
GRAPH_COMPLETION = "GRAPH_COMPLETION"
|
||||
GRAPH_SUMMARY_COMPLETION = "GRAPH_SUMMARY_COMPLETION"
|
||||
CODE = "CODE"
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
from .query_completion import query_completion
|
||||
from .graph_query_completion import graph_query_completion
|
||||
from .graph_query_summary_completion import graph_query_summary_completion
|
||||
|
|
|
|||
|
|
@ -4,9 +4,10 @@ from cognee.tasks.completion.exceptions import NoRelevantDataFound
|
|||
from cognee.infrastructure.llm.get_llm_client import get_llm_client
|
||||
from cognee.infrastructure.llm.prompts import read_query_prompt, render_prompt
|
||||
from cognee.modules.retrieval.brute_force_triplet_search import brute_force_triplet_search
|
||||
from typing import Callable
|
||||
|
||||
|
||||
def retrieved_edges_to_string(retrieved_edges: list) -> str:
|
||||
async def retrieved_edges_to_string(retrieved_edges: list) -> str:
|
||||
"""
|
||||
Converts a list of retrieved graph edges into a human-readable string format.
|
||||
|
||||
|
|
@ -21,7 +22,7 @@ def retrieved_edges_to_string(retrieved_edges: list) -> str:
|
|||
return "\n---\n".join(edge_strings)
|
||||
|
||||
|
||||
async def graph_query_completion(query: str) -> list:
|
||||
async def graph_query_completion(query: str, context_resolver: Callable = None) -> list:
|
||||
"""
|
||||
Executes a query on the graph database and retrieves a relevant completion based on the found data.
|
||||
|
||||
|
|
@ -53,9 +54,12 @@ async def graph_query_completion(query: str) -> list:
|
|||
if len(found_triplets) == 0:
|
||||
raise NoRelevantDataFound
|
||||
|
||||
if not context_resolver:
|
||||
context_resolver = retrieved_edges_to_string
|
||||
|
||||
args = {
|
||||
"question": query,
|
||||
"context": retrieved_edges_to_string(found_triplets),
|
||||
"context": await context_resolver(found_triplets),
|
||||
}
|
||||
user_prompt = render_prompt("graph_context_for_question.txt", args)
|
||||
system_prompt = read_query_prompt("answer_simple_question.txt")
|
||||
|
|
|
|||
26
cognee/tasks/completion/graph_query_summary_completion.py
Normal file
26
cognee/tasks/completion/graph_query_summary_completion.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
from cognee.infrastructure.llm.get_llm_client import get_llm_client
|
||||
from cognee.infrastructure.llm.prompts import read_query_prompt
|
||||
from cognee.tasks.completion.graph_query_completion import (
|
||||
graph_query_completion,
|
||||
retrieved_edges_to_string,
|
||||
)
|
||||
|
||||
|
||||
async def retrieved_edges_to_summary(retrieved_edges: list) -> str:
|
||||
"""
|
||||
Converts a list of retrieved graph edges into a summary without redundancies.
|
||||
|
||||
"""
|
||||
edges_string = await retrieved_edges_to_string(retrieved_edges)
|
||||
system_prompt = read_query_prompt("summarize_search_results.txt")
|
||||
llm_client = get_llm_client()
|
||||
summarized_context = await llm_client.acreate_structured_output(
|
||||
text_input=edges_string,
|
||||
system_prompt=system_prompt,
|
||||
response_model=str,
|
||||
)
|
||||
return summarized_context
|
||||
|
||||
|
||||
async def graph_query_summary_completion(query: str) -> list:
|
||||
return await graph_query_completion(query, context_resolver=retrieved_edges_to_summary)
|
||||
Loading…
Add table
Reference in a new issue