graphiti/graphiti_core
Daniel Chalef 189e45617f
Add group_id parameter to language extraction function (#952)
* Add group_id parameter to get_extraction_language_instruction

Enable consumers to provide group-specific language extraction
instructions by passing group_id through the call chain.

Changes:
- Add optional group_id parameter to get_extraction_language_instruction()
- Add group_id parameter to all LLMClient.generate_response() methods
- Pass group_id through to language instruction function
- Maintain backward compatibility with default None value

Users can now customize extraction per group:
```python
def custom_instruction(group_id: str | None = None) -> str:
    if group_id == 'spanish-users':
        return '\n\nExtract in Spanish.'
    return '\n\nExtract in original language.'

client.get_extraction_language_instruction = custom_instruction
```

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Pass group_id to generate_response in extraction operations

Thread group_id parameter through all extraction-related generate_response()
calls where it's naturally available (via episode.group_id or node.group_id).
This enables consumers to override get_extraction_language_instruction() with
group-specific language preferences.

Changes:
- edge_operations.py: Pass group_id in extract_edges()
- node_operations.py: Pass episode.group_id in extract_nodes() and
  node.group_id in extract_attributes_from_node()
- node_operations.py: Add group_id parameter to extract_nodes_reflexion()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix type inconsistency in extract_nodes_reflexion parameter

Change group_id parameter from str = '' to str | None = None to match
the pattern used throughout the codebase and align with the optional
nature of group_id in generate_response().

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove ensure_ascii parameter and uv.lock file

* Reset uv.lock to main branch version

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-03 09:05:45 -07:00
..
cross_encoder fix typo and model selector (#843) 2025-08-18 11:15:45 -04:00
driver Graph quality updates (#922) 2025-09-23 17:53:39 -04:00
embedder OpenSearch Integration for Neo4j (#896) 2025-09-09 10:51:46 -04:00
llm_client Add group_id parameter to language extraction function (#952) 2025-10-03 09:05:45 -07:00
migrations cleanup (#894) 2025-09-05 11:30:46 -04:00
models OpenSearch Integration for Neo4j (#896) 2025-09-09 10:51:46 -04:00
prompts fix: Improve edge extraction entity ID validation (#968) 2025-10-02 22:45:11 -07:00
search Remove ensure_ascii configuration parameter (#969) 2025-10-02 15:10:57 -07:00
telemetry
utils Add group_id parameter to language extraction function (#952) 2025-10-03 09:05:45 -07:00
__init__.py
edges.py filter out falsey values before creating embeddings (#966) 2025-10-02 15:26:51 -04:00
errors.py
graph_queries.py Graph quality updates (#922) 2025-09-23 17:53:39 -04:00
graphiti.py Remove ensure_ascii configuration parameter (#969) 2025-10-02 15:10:57 -07:00
graphiti_types.py Remove ensure_ascii configuration parameter (#969) 2025-10-02 15:10:57 -07:00
helpers.py fix-fulltext-syntax-error (#914) 2025-09-23 10:52:44 -04:00
nodes.py filter out falsey values before creating embeddings (#966) 2025-10-02 15:26:51 -04:00
py.typed