Skip to content

Commit 79f02ba

Browse files
psriramsnczephyrzillavipul-mittal
authored
[Fix] PyPI dependency issues and Name change (#38)
* Fix pypi dependency issues * Removed pyyaml version for python 3.9 support * Updated library name * Fixed formatting issues * feat: rename the project from GraSP to SyGra * Update README.md Change SYGRA to SyGra Co-authored-by: Vipul Mittal <118464422+vipul-mittal@users.noreply.github.com> --------- Co-authored-by: Surajit Dasgupta <surajit.dasgupta@servicenow.com> Co-authored-by: Vipul Mittal <118464422+vipul-mittal@users.noreply.github.com>
1 parent fa303cb commit 79f02ba

208 files changed

Lines changed: 1404 additions & 1354 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/pull_request_template.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Please go to the `Preview` tab and select the appropriate sub-template:
22

3-
* [Feature Template](https://github.com/ServiceNow/GraSP/blob/main/.github/PULL_REQUEST_TEMPLATE/feature_template.md)
4-
* [Issue Template](https://github.com/ServiceNow/GraSP/blob/main/.github/PULL_REQUEST_TEMPLATE/issue_template.md)
3+
* [Feature Template](https://github.com/ServiceNow/SyGra/blob/main/.github/PULL_REQUEST_TEMPLATE/feature_template.md)
4+
* [Issue Template](https://github.com/ServiceNow/SyGra/blob/main/.github/PULL_REQUEST_TEMPLATE/issue_template.md)

.github/workflows/ci.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ permissions:
1414

1515
jobs:
1616
# Just one lightweight setup job to warm the cache
17-
setup_grasp:
17+
setup_sygra:
1818
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
1919
runs-on: ubuntu-latest
2020
steps:
@@ -35,7 +35,7 @@ jobs:
3535

3636
# Run Formatting
3737
format:
38-
needs: setup_grasp
38+
needs: setup_sygra
3939
runs-on: ubuntu-latest
4040
steps:
4141
- uses: actions/checkout@v4
@@ -54,7 +54,7 @@ jobs:
5454
- run: make format
5555
# Run Linting
5656
lint:
57-
needs: setup_grasp
57+
needs: setup_sygra
5858
runs-on: ubuntu-latest
5959
steps:
6060
- uses: actions/checkout@v4
@@ -73,7 +73,7 @@ jobs:
7373
- run: make lint
7474
# Run Tests
7575
test:
76-
needs: setup_grasp
76+
needs: setup_sygra
7777
runs-on: ubuntu-latest
7878
steps:
7979
- uses: actions/checkout@v4
@@ -92,7 +92,7 @@ jobs:
9292
- run: make test
9393
# Build Docs
9494
docs_build:
95-
needs: setup_grasp
95+
needs: setup_sygra
9696
runs-on: ubuntu-latest
9797
steps:
9898
- uses: actions/checkout@v4

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ logs/*
88
.vscode/
99
.env
1010
poetry.lock
11-
**/grasp.egg-info/*
11+
*.egg-info/*
1212
site/
13+
build/
14+
dist/

CITATION.cff

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cff-version: 1.2.0
2-
message: "If you use GraSP in your projects, please cite it as below."
2+
message: "If you use SyGra in your projects, please cite it as below."
33
authors:
44
- family-names: Pradhan
55
given-names: Bidyapati
@@ -15,11 +15,11 @@ authors:
1515
given-names: Vipul
1616
- family-names: Gopal
1717
given-names: Sarda
18-
title: "GraSP, an open-source GRAph-oriented Synthetic data generation Pipeline"
18+
title: "SyGra, an open-source GRAph-oriented Synthetic data generation Pipeline"
1919
version: "1.0"
2020
date-released: "2025-09-15"
21-
url: "https://servicenow.github.io/grasp"
22-
repository-code: "https://github.com/ServiceNow/grasp"
21+
url: "https://servicenow.github.io/sygra"
22+
repository-code: "https://github.com/ServiceNow/sygra"
2323
license: "Apache-2.0"
2424

2525
# identifiers:
@@ -28,7 +28,7 @@ license: "Apache-2.0"
2828

2929
preferred-citation:
3030
type: article
31-
title: "GraSP: An open-source GRAph-oriented Synthetic data generation Pipeline"
31+
title: "SyGra: An open-source GRAph-oriented Synthetic data generation Pipeline"
3232
authors:
3333
- family-names: Pradhan
3434
given-names: Bidyapati

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ ServiceNow suggests the following technical support pathways for open-source pro
3939

4040
**Enforcement and reporting**
4141

42-
We encourage community members and users to help each other and to resolve issues amongst themselves as much as possible. If a matter cannot be resolved in good faith within the means available, please reach out to a team member or email grasp_team@servicenow.com.
42+
We encourage community members and users to help each other and to resolve issues amongst themselves as much as possible. If a matter cannot be resolved in good faith within the means available, please reach out to a team member or email sygra_team@servicenow.com.
4343

4444
**ServiceNow Disclaimer.**
4545

CONTRIBUTING.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
# Contributing to GraSP :telescope:
1+
# Contributing to SyGra :telescope:
22

3-
Thank you for your interest in contributing to GraSP!
3+
Thank you for your interest in contributing to SyGra!
44

55
This document should be able to guide contributors in their different types of contributions.
66

7-
:information_source: Just want to ask a question? Open a topic on our [Discussion page](https://github.com/ServiceNow/grasp/discussions).
7+
:information_source: Just want to ask a question? Open a topic on our [Discussion page](https://github.com/ServiceNow/sygra/discussions).
88

99

1010
## Get your environment setup
1111

12-
GraSP is split in two components.
12+
SyGra is split in two components.
1313
Go to our [Installation](docs/installation.md) to get installation.
1414

1515

16-
[//]: # (It is encouraged to be familiar with our [development best practices]&#40;https://servicenow.github.io/grasp/development/dev-practices/&#41;.)
16+
[//]: # (It is encouraged to be familiar with our [development best practices]&#40;https://servicenow.github.io/sygra/development/dev-practices/&#41;.)
1717

1818

1919
When everything is set up, you can refer to the
@@ -25,7 +25,7 @@ sections to setup a synthetic data generation pipeline.
2525

2626
## How to submit a bug report
2727

28-
[Open an issue on Github](https://github.com/ServiceNow/grasp/issues/new/choose) and select "Bug report". If you are not sure whether it is a bug or not, submit an issue and we will be able to help you.
28+
[Open an issue on Github](https://github.com/ServiceNow/sygra/issues/new/choose) and select "Bug report". If you are not sure whether it is a bug or not, submit an issue and we will be able to help you.
2929

3030
Issues with reproducible examples are easier to work with. Do not hesitate to provide your configuration with generated data if need be.
3131

@@ -37,11 +37,11 @@ First, open an issue describing your desired changes, if it does not exist alrea
3737

3838
You can also self-assign an existing issue by commmenting #self-assign on the issue.
3939

40-
1. [Fork the repo to your own account](https://github.com/ServiceNow/grasp/fork).
40+
1. [Fork the repo to your own account](https://github.com/ServiceNow/sygra/fork).
4141
2. Clone your fork of the repo locally.
4242
3. Make your changes (the fun part).
4343
4. Commit and push your changes to your fork.
44-
5. [Open a pull-request](https://github.com/ServiceNow/grasp/compare) with your branch.
44+
5. [Open a pull-request](https://github.com/ServiceNow/sygra/compare) with your branch.
4545
6. Once a team member approves your changes, we will merge the pull request promptly.
4646

4747
### Guidelines for a good pull-request
@@ -50,9 +50,9 @@ When coding, pay special attention to the following:
5050
* Do not expose any personal/sensitive data.
5151
* Add unit tests when a notable functionality has been added or changed.
5252

53-
[//]: # (* Read our [development best practices]&#40;https://servicenow.github.io/grasp/development/dev-practices/&#41; to set up `pre-commit`, and test your changes.)
53+
[//]: # (* Read our [development best practices]&#40;https://servicenow.github.io/sygra/development/dev-practices/&#41; to set up `pre-commit`, and test your changes.)
5454
* Do not forget to notify the team in advance that you are working on an issue (Using #self-assign or by creating an issue). Mention it if you need to add/bump a dependency.
55-
* Check the [PR template](https://github.com/ServiceNow/grasp/blob/main/.github/pull_request_template.md) in advance to see the checklist of things to do.
55+
* Check the [PR template](https://github.com/ServiceNow/sygra/blob/main/.github/pull_request_template.md) in advance to see the checklist of things to do.
5656

5757
### Where to ask for help!
5858

@@ -71,4 +71,4 @@ If the team member can't answer your question, they will find someone who can!
7171

7272
We would love to add you to this list!
7373

74-
[//]: # (To reach out to the owners of this project, please see our [About page]&#40;https://servicenow.github.io/grasp/about-us/&#41;.)
74+
[//]: # (To reach out to the owners of this project, please see our [About page]&#40;https://servicenow.github.io/sygra/about-us/&#41;.)

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@ POETRY = poetry
1616

1717
.PHONY: setup
1818
setup: ## Install core dependencies
19-
@echo "Installing GraSP core dependencies"
19+
@echo "Installing SyGra core dependencies"
2020
$(POETRY) install --no-interaction --no-root --without dev,ui
2121

2222
.PHONY: setup-all
2323
setup-all: ## Install core and extra dependencies
24-
@echo "Installing GraSP Core and extra dependencies"
24+
@echo "Installing SyGra Core and extra dependencies"
2525
$(POETRY) install --no-interaction --no-root --without dev
2626

2727
.PHONY: setup-ui
2828
setup-ui: ## Install development dependencies
29-
@echo "Installing GraSP UI dependencies"
29+
@echo "Installing SyGra UI dependencies"
3030
$(POETRY) install --no-interaction --no-root --without dev
3131

3232
.PHONY: setup-dev
3333
setup-dev: ## Install development dependencies
34-
@echo "Installing GraSP Core, Extra and Development dependencies"
34+
@echo "Installing SyGra Core, Extra and Development dependencies"
3535
$(POETRY) install --no-interaction --no-root
3636

3737
########################################################################################################################
@@ -48,7 +48,7 @@ test-verbose: ## Run tests in verbose mode
4848

4949
.PHONY: test-coverage
5050
test-coverage: ## Run tests with coverage
51-
$(POETRY) run $(PYTEST) --cov=grasp --cov-report=term --cov-report=xml
51+
$(POETRY) run $(PYTEST) --cov=sygra --cov-report=term --cov-report=xml
5252

5353
########################################################################################################################
5454
# DOCUMENTATION

README.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<div align="center">
2-
<img width=30% src="https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/grasp_logo.png">
2+
<img width=30% src="https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/sygra_logo.png">
33

4-
<h1>GRASP: GRAph-oriented Synthetic data generation Pipeline</h1>
4+
<h1>SyGra: GRAph-oriented Synthetic data generation Pipeline</h1>
55

6-
<a href="https://github.com/ServiceNow/GraSP/actions/workflows/ci.yaml">
7-
<img alt="CI" src="https://github.com/ServiceNow/GraSP/actions/workflows/ci.yaml/badge.svg"/></a>
8-
<a href="https://github.com/ServiceNow/GraSP/releases">
9-
<img alt="Releases" src="https://img.shields.io/github/v/release/ServiceNow/GraSP?logo=bookstack&logoColor=white"/></a>
10-
<a href="https://servicenow.github.io/GraSP">
6+
<a href="https://github.com/ServiceNow/SyGra/actions/workflows/ci.yaml">
7+
<img alt="CI" src="https://github.com/ServiceNow/SyGra/actions/workflows/ci.yaml/badge.svg"/></a>
8+
<a href="https://github.com/ServiceNow/SyGra/releases">
9+
<img alt="Releases" src="https://img.shields.io/github/v/release/ServiceNow/SyGra?logo=bookstack&logoColor=white"/></a>
10+
<a href="https://servicenow.github.io/SyGra">
1111
<img alt="Documentation" src="https://img.shields.io/badge/MkDocs-Documentation-green.svg"/></a>
1212
<a href="http://arxiv.org/abs/2508.15432">
1313
<img src="https://img.shields.io/badge/arXiv-2508.15432-B31B1B.svg" alt="arXiv"></a>
@@ -30,55 +30,55 @@ kinds of computational graph which can be configured.
3030

3131
## Introduction
3232

33-
GraSP Framework is created to generate synthetic data. As it is a complex process to define the flow, this design simplifies the synthetic data generation process. GraSP platform will support the following:
33+
SyGra Framework is created to generate synthetic data. As it is a complex process to define the flow, this design simplifies the synthetic data generation process. SyGra platform will support the following:
3434
- Defining the seed data configuration
3535
- Define a task, which involves graph node configuration, flow between nodes and conditions between the node
3636
- Define the output location to dump the generated data
3737

38-
Seed data can be pulled from either Huggingface or file system. Once the seed data is loaded, GraSP platform allows datagen users to write any data processing using the data transformation module. When the data is ready, users can define the data flow with various types of nodes. A node can also be a subgraph defined in another yaml file.
38+
Seed data can be pulled from either Huggingface or file system. Once the seed data is loaded, SyGra platform allows datagen users to write any data processing using the data transformation module. When the data is ready, users can define the data flow with various types of nodes. A node can also be a subgraph defined in another yaml file.
3939

4040
Each node can be defined with preprocessing, post processing, and LLM prompt with model parameters. Prompts can use seed data as python template keys.
4141
Edges define the flow between nodes, which can be conditional or non-conditional, with support for parallel and one-to-many flows.
4242

4343
At the end, generated data is collected in the graph state for a specific record, processed further to generate the final dictionary to be written to the configured data sink.
4444

45-
![GraspFramework](https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/grasp_architecture.png)
45+
![SygraFramework](https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/sygra_architecture.png)
4646

4747
---
4848

4949
# Installation
5050

51-
Pick how you want to use **GraSP**:
51+
Pick how you want to use **SyGra**:
5252

5353
<div align="center">
5454

55-
<a href="https://servicenow.github.io/GraSP/installation/">
55+
<a href="https://servicenow.github.io/SyGra/installation/">
5656
<img src="https://img.shields.io/badge/Use%20as-Framework-4F46E5?style=for-the-badge" alt="Install as Framework">
5757
</a>
5858
&nbsp;&nbsp;
59-
<a href="https://servicenow.github.io/GraSP/grasp_library/">
59+
<a href="https://servicenow.github.io/SyGra/sygra_library/">
6060
<img src="https://img.shields.io/badge/Use%20as-Library-10B981?style=for-the-badge" alt="Install as Library">
6161
</a>
6262

6363
</div>
6464

6565
### Which one should I choose?
6666
- **Framework** → Run end-to-end pipelines from YAML graphs + CLI tooling and project scaffolding.
67-
(Start here: **[`Installation`](https://servicenow.github.io/GraSP/installation/)**)
67+
(Start here: **[`Installation`](https://servicenow.github.io/SyGra/installation/)**)
6868

69-
- **Library** → Import GraSP in your own Python app/notebook; call APIs directly.
70-
(Start here: **[`GraSP Library`](https://servicenow.github.io/GraSP/grasp_library/)**)
69+
- **Library** → Import SyGra in your own Python app/notebook; call APIs directly.
70+
(Start here: **[`SyGra Library`](https://servicenow.github.io/SyGra/sygra_library/)**)
7171

7272

7373
<details>
7474
<summary><strong>TL;DR – Framework Setup</strong></summary>
7575

76-
See full steps in <a href="https://servicenow.github.io/GraSP/installation/">Installation</a>.
76+
See full steps in <a href="https://servicenow.github.io/SyGra/installation/">Installation</a>.
7777

7878
```bash
79-
git clone git@github.com:ServiceNow/GraSP.git
79+
git clone git@github.com:ServiceNow/SyGra.git
8080

81-
cd GraSP
81+
cd SyGra
8282

8383
poetry run python main.py --task examples.glaive_code_assistant --num_records=1
8484
```
@@ -87,52 +87,52 @@ poetry run python main.py --task examples.glaive_code_assistant --num_records=1
8787
<details>
8888
<summary><strong>TL;DR – Library Setup</strong></summary>
8989

90-
See full steps in <a href="https://servicenow.github.io/GraSP/grasp_library/">Grasp Library</a>.
90+
See full steps in <a href="https://servicenow.github.io/SyGra/sygra_library/">Sygra Library</a>.
9191

9292
```bash
93-
pip install grasp
93+
pip install sygra
9494
```
9595

9696
```python
97-
import grasp
97+
import sygra
9898

99-
workflow = grasp.Workflow("tasks/examples/glaive_code_assistant")
99+
workflow = sygra.Workflow("tasks/examples/glaive_code_assistant")
100100
workflow.run(num_records=1)
101101
```
102102
</details>
103103

104104
---
105105

106106
## Components
107-
The GraSP architecture is composed of multiple components. The following diagrams illustrate the four primary components and their associated modules.
107+
The SyGra architecture is composed of multiple components. The following diagrams illustrate the four primary components and their associated modules.
108108

109109
### Data Handler
110110
Data handler is used for reading and writing the data. Currently, it supports file handler with various file types and huggingface handler.
111111
When reading data from huggingface, it can read the whole dataset and process, or it can stream chunk of data.
112112

113-
<kbd> ![DataHandler](https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/component_data_handler.png) </kbd>
113+
<kbd> ![DataHandler](https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/component_data_handler.png) </kbd>
114114

115115
### Graph Node Module
116116
This module is responsible for building various kind of nodes like LLM node, Multi-LLM node, Lambda node, Agent node etc.
117117
Each node is defined for various task, for example multi-llm node is used to load-balance the data among various inference point running same model.
118118

119-
<kbd> ![Nodes](https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/component_nodes.png) </kbd>
119+
<kbd> ![Nodes](https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/component_nodes.png) </kbd>
120120

121121
### Graph Edge Connection
122122
Once node are built, we can connect them with simple edge or conditional edge.
123123
Conditional edge uses python code to decide the path. Conditional edge helps implimenting if-else flow as well as loops in the graph.
124124

125-
<kbd> ![Edges](https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/component_edges.png) </kbd>
125+
<kbd> ![Edges](https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/component_edges.png) </kbd>
126126

127127
### Model clients
128-
GraSP doesn't support inference within the framework, but it supports various clients, which helps connecting with different kind of servers.
128+
SyGra doesn't support inference within the framework, but it supports various clients, which helps connecting with different kind of servers.
129129
For example, openai client is being supported by Huggingface TGI, vLLM server and Azure services. However, model configuration does not allow to change clients, but it can be configured in models code.
130130

131-
<kbd> ![ModelClient](https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/component_model_client.png) </kbd>
131+
<kbd> ![ModelClient](https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/component_model_client.png) </kbd>
132132

133133
## Task Components
134134

135-
GraSP supports extendability and ease of implementation—most tasks are defined as graph configuration YAML files. Each task consists of two major components: a graph configuration and Python code to define conditions and processors.
135+
SyGra supports extendability and ease of implementation—most tasks are defined as graph configuration YAML files. Each task consists of two major components: a graph configuration and Python code to define conditions and processors.
136136
YAML contains various parts:
137137

138138
- **Data configuration** : Configure file or huggingface as source and sink for the task.
@@ -147,12 +147,12 @@ LLM-based nodes require a model configured in `models.yaml` and runtime paramete
147147

148148
As of now, LLM inference is supported for TGI, vLLM, Azure, Azure OpenAI, Ollama and Triton compatible servers. Model deployment is external and configured in `models.yaml`.
149149

150-
<!-- ![GraspComponents](https://raw.githubusercontent.com/ServiceNow/GraSP/refs/heads/main/docs/resources/images/grasp_usecase2framework.png) -->
150+
<!-- ![SygraComponents](https://raw.githubusercontent.com/ServiceNow/SyGra/refs/heads/main/docs/resources/images/sygra_usecase2framework.png) -->
151151

152152

153153
## Contact
154154

155-
To contact us, please send us an [email](mailto:grasp_team@servicenow.com)!
155+
To contact us, please send us an [email](mailto:sygra_team@servicenow.com)!
156156

157157
## License
158158

@@ -161,4 +161,4 @@ The package is licensed by ServiceNow, Inc. under the Apache 2.0 license. See [L
161161
---
162162

163163
**Questions?**
164-
Open an [issue](https://github.com/ServiceNow/GraSP/issues) or start a [discussion](https://github.com/ServiceNow/GraSP/discussions)! Contributions are welcome.
164+
Open an [issue](https://github.com/ServiceNow/SyGra/issues) or start a [discussion](https://github.com/ServiceNow/SyGra/discussions)! Contributions are welcome.

0 commit comments

Comments
 (0)