Repository navigation
GML-2314 Release GraphRAG 2.0.3 - #69
Merged
Merged
Conversation
…t resolution, clarifying question fallback (#64) * Planner and react: multi-clause routing, conversation context resolution, clarifying question fallback - When a question refers to something from earlier in the conversation, resolve it from ## Conversation and use the full name in retrieval args. If history has multiple candidates and it is unclear which is meant, ask the user one short clarifying question instead of guessing. - For each unstructured retrieval step, set the question to that clause only as a standalone search query. Do not pass the full multi-part question, a clause already covered by another step, or an unresolved reference from conversation history. - When a question has multiple clauses, assign each clause to its own retrieval step; plan additional RAG steps for any clause not yet covered. - Synthesizer: answer each part of a multi-part question from its matching source; do not mix structured notes with document-passage answers. Co-authored-by: Cursor <cursoragent@cursor.com> * Planner/react: resolve underspecified questions from conversation history before any retrieval * Synthesizer: generic multi-part answer rule, remove dataset-specific wording --------- Co-authored-by: Prins Kumar <prinskumar@Prinss-MacBook-Air.local> Co-authored-by: Cursor <cursoragent@cursor.com>
…ut format (#66) Regression eval: fix LLM judge errors with gemini-3.5-flash - evaluator.py: pre-load common.config, hallucination_check, openai.types.chat at module level to prevent race conditions when ThreadPoolExecutor workers all try to import the same partially-initialized module simultaneously - hallucination_check.py: replace PydanticOutputParser format instructions (full JSON schema) with a simple inline example so models do not echo the schema definition back instead of filling in values - recall_evaluator.py: handle list content blocks in LLM judge response (gemini-3.5-flash returns resp.content as a list, not a string) Co-authored-by: Prins Kumar <prinskumar@Prinss-MacBook-Air.local>
….0.3 (#67) * Take query-with-history conversation context from the request - Conversation history is no longer retained on the server between calls, so concurrent callers no longer receive each other's previous questions and answers as context - Callers supply prior turns on the request; the most recent are used - Requests that send no turns are answered without prior context - Update the demo notebook to carry its own conversation Refs: GML-2194 * Report unreadable files as failed instead of ingesting the error - A PDF or image that cannot be extracted no longer becomes a document whose text is the failure notice, so no placeholder content reaches the knowledge graph or turns up in answers - Such a file is reported as failed with the reason; other files in the same upload still process normally - Failure messages name the file and the remedy, keeping parser detail in the server log Refs: GML-2195 * Extract tables from Word documents instead of dropping them - Tables in a .docx are read and rendered in place, so the figures they hold reach the knowledge graph and can be cited; previously only the paragraphs around them were ingested and the table vanished silently - Tables nested inside a cell are included, and a pipe or line break in a cell no longer breaks the rendered row - Legacy .doc is reported as unreadable with a pointer to .docx, instead of being listed as supported and ingested as a note about itself - An empty spreadsheet or an unreadable file type is reported as a failure rather than ingested as placeholder text Refs: GML-2196 * Require valid credentials for document retrieval - The document-retrieval endpoint returned matching content without checking the caller; it now rejects anyone who cannot access the graph named in the request - Search runs against the graph named in the request instead of the configured default graph - A request with no credentials is rejected rather than failing as a server error Refs: GML-2197 * Stop swapping the two contextual-search options - Contextual (sibling-chunk) search received the hypothetical-answer and question-expansion options in each other's place on every call, so asking for one applied the other; they select different search strategies rather than variations of one - Requests that set neither option, which is all chat traffic, were unaffected Refs: GML-2198 * Fix knowledge-graph rebuild for token sign-ins - Rebuilds started from a token sign-in no longer fail as if the graph did not exist - An invalid token is rejected as an authentication failure instead of a server error Refs: GML-2182 * Save MCP server deletes and stop Cancel from deleting a server - Deleting an MCP server asks for confirmation and is saved immediately, instead of being lost on reload - Cancelling an edit restores the server's saved settings instead of removing it from the list Refs: GML-2301 * Request agentic plans in a form OpenAI accepts - Agentic planning no longer makes a request OpenAI rejects before every plan, removing the extra latency and token cost from each answer - Other model providers and other structured requests keep their current behavior Refs: GML-2302 * Delete chat conversations one at a time, in a group, or all at once - Each conversation in the chat sidebar has a delete button, with a confirmation - Select mode lets several conversations, or all shown ones, be deleted together - A Clear all action removes the whole history, shown whenever there is any; Clear older is unchanged - Deleting the open conversation starts a new chat - A delete that fails is reported instead of silently leaving the entry Refs: GML-2303 * Fit retrieved context to the chat model's input limit - Default to the chat model's own input limit when no token limit is set - Reserve room for the full answer prompt instead of a fixed amount - Decide on trimming by token count, so CJK context is trimmed correctly - Send each retrieved passage to the answer model once across a plan's steps - Log the cause when answer generation fails - Report and log how many chunks each search retrieved, and their size - Show oversized step output in the trace as shortened tool data with a note Refs: GML-2311 * Repair only graphs whose schema the current queries can run on - The Migration Assistant check reports whether a graph's schema matches the current base schema, as graphs created with 1.4 or later do - Repair is offered and accepted only for such graphs; older graphs are told to be recreated and their documents ingested again - Repair is withheld when the schema cannot be read Refs: GML-2312 * List each contextual-search passage once, at its correct position - Neighbor offsets are measured from the match each chunk belongs to - A chunk near several matches is listed once, under the nearest one - Every match appears under itself at offset zero Refs: GML-2313
- Bump the version to 2.0.3 - Add the 2.0.3 entry to the README release list - Record the multi-part and follow-up question improvements in the changelog
- Reserve at most 8K tokens for the answer when deriving the default limit, so models with large output budgets keep most of their context - Drop only text already sent when de-duplicating passages across steps, so a later step's different or extra text for the same entry is kept - Return the usual fallback answer when the answer prompt cannot be built Refs: GML-2311
- Fall back to parsing the planner's text when tool-calling structured output comes back empty instead of failing the request - Count a model as tool-calling only when it actually calls the tool, asking a second time with the call required before deciding Refs: GML-2302
- Unclear follow-ups get one short clarifying question from triage, which can reply to the user, instead of from the planner, which cannot - Triage reads the most recent turns of the conversation, up to a larger budget, so it sees the subjects a follow-up refers to - The planner still resolves a follow-up's subject from the conversation Refs: GML-2191
- Count deleted conversations against the list as it is when the delete lands, so a background refresh can't leave a duplicate or missing row - Disable the other delete actions while a single delete is in progress Refs: GML-2303
- A delete that finishes after the user switches scope or graph no longer changes the newly shown list Refs: GML-2301
- A table that fails to render falls back to its plain text instead of failing the whole document Refs: GML-2196
- The summary gives the chunk count and total characters retrieved, plus any other entries, matching the retrieval log line Refs: GML-2311
Disable automatic function calling for Gemini Co-authored-by: Prins Kumar <prinskumar@TigerGraph-N5YV7FG6R0.local>
- Raise the minimum versions of pyTigerGraph and tigergraph-mcp - Close each agent TigerGraph tool call's sessions when the call ends - Build the ECC image on the same supported base image as the main service Refs: GML-2314
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release GraphRAG 2.0.3 into
main. Merges all 2.0.3 work accumulated onrelease_2.0.3(clean fast-forwardable superset ofmain).Epic: GML-2314
Added
Changed
token_limit: 0uses the chat model's own input limit instead of meaning unlimited.query_with_historycallers supply their own conversation context.Fixed
.docand empty files are reported instead of ingested.See
CHANGELOG.md[2.0.3] for full details.