├── .env ├── .gitignore ├── README.md ├── input └── our-mutual-friends.txt ├── output ├── 20240715-170237 │ ├── artifacts │ │ ├── create_base_documents.parquet │ │ ├── create_base_entity_graph.parquet │ │ ├── create_base_extracted_entities.parquet │ │ ├── create_base_text_units.parquet │ │ ├── create_final_communities.parquet │ │ ├── create_final_community_reports.parquet │ │ ├── create_final_documents.parquet │ │ ├── create_final_entities.parquet │ │ ├── create_final_nodes.parquet │ │ ├── create_final_relationships.parquet │ │ ├── create_final_text_units.parquet │ │ ├── create_summarized_entities.parquet │ │ ├── join_text_units_to_entity_ids.parquet │ │ ├── join_text_units_to_relationship_ids.parquet │ │ └── stats.json │ └── reports │ │ ├── indexing-engine.log │ │ └── logs.json └── 20240715-171146 │ ├── artifacts │ ├── create_base_documents.parquet │ ├── create_base_entity_graph.parquet │ ├── create_base_extracted_entities.parquet │ ├── create_base_text_units.parquet │ ├── create_final_communities.parquet │ ├── create_final_community_reports.parquet │ ├── create_final_documents.parquet │ ├── create_final_entities.parquet │ ├── create_final_nodes.parquet │ ├── create_final_relationships.parquet │ ├── create_final_text_units.parquet │ ├── create_summarized_entities.parquet │ ├── join_text_units_to_entity_ids.parquet │ ├── join_text_units_to_relationship_ids.parquet │ └── stats.json │ └── reports │ ├── indexing-engine.log │ └── logs.json ├── prompts ├── claim_extraction.txt ├── community_report.txt ├── entity_extraction.txt └── summarize_descriptions.txt ├── run.txt └── settings.yaml /.env: -------------------------------------------------------------------------------- 1 | 2 | OPENAI_API_KEY="OPENAI_API_KEY" 3 | OPENAI_DEPLOYMENT_NAME="OPENAI_DEPLOYMENT_NAME" 4 | API_BASE="API_BASE" 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # poetry 98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 102 | #poetry.lock 103 | 104 | # pdm 105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 106 | #pdm.lock 107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 108 | # in version control. 109 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control 110 | .pdm.toml 111 | .pdm-python 112 | .pdm-build/ 113 | 114 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 115 | __pypackages__/ 116 | 117 | # Celery stuff 118 | celerybeat-schedule 119 | celerybeat.pid 120 | 121 | # SageMath parsed files 122 | *.sage.py 123 | 124 | # Environments 125 | .env 126 | .venv 127 | env/ 128 | venv/ 129 | ENV/ 130 | env.bak/ 131 | venv.bak/ 132 | 133 | # Spyder project settings 134 | .spyderproject 135 | .spyproject 136 | 137 | # Rope project settings 138 | .ropeproject 139 | 140 | # mkdocs documentation 141 | /site 142 | 143 | # mypy 144 | .mypy_cache/ 145 | .dmypy.json 146 | dmypy.json 147 | 148 | # Pyre type checker 149 | .pyre/ 150 | 151 | # pytype static type analyzer 152 | .pytype/ 153 | 154 | # Cython debug symbols 155 | cython_debug/ 156 | 157 | # PyCharm 158 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 159 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 160 | # and can be added to the global gitignore or merged into this file. For a more nuclear 161 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 162 | #.idea/ 163 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GraphRAG Setup and Usage Guide 2 | 3 | ## Pre-requirements: 4 | Python latest version is giving some errors in installing Gensim and another library, so I recommend you to consider python 3.10 version. 5 | 6 | ### Steps: 7 | 8 | 1. **Open VSCode > Terminal (command prompt) and continue the below commands:** 9 | 10 | ```sh 11 | # Create a new directory 12 | mkdir Graphrag 13 | 14 | # Create a new conda environment with Python 3.10 15 | conda create -p ./graphragvenv python=3.10 16 | 17 | # Activate the created conda environment 18 | conda activate ./graphragvenv 19 | 20 | # Install and update pip 21 | python -m pip install --upgrade pip 22 | 23 | # Install and upgrade the setuptools package 24 | python -m pip install --upgrade setuptools 25 | ``` 26 | 27 | 2. **Install GraphRAG:** 28 | 29 | ```sh 30 | # Install GraphRAG 31 | pip install graphrag 32 | 33 | # If installing GraphRAG raises any error, run the below command 34 | python -m pip install --no-cache-dir --force-reinstall gensim 35 | 36 | # Then install GraphRAG again 37 | pip install graphrag 38 | ``` 39 | 40 | 3. **Initialize GraphRAG:** 41 | 42 | ```sh 43 | python -m graphrag.index --init --root . 44 | ``` 45 | 46 | Running the above command, GraphRAG is initiated and creates folders and files. 47 | 48 | 4. **Creating the Deployments of LLM Model and Embedding Model in Azure OpenAI:** 49 | 50 | - For embedding, the model is `text-embedding-small` 51 | - For LLM model, recommended is `GPT-4o`. 52 | 53 | 54 | > I have tried with `GPT-35-turbo-instruct` which is not working, raising some issues on creating the graphs at the end. I recommend you to use `GPT-4o`, and the model is very good at providing accurate answers. You can also check which other models 55 | 56 | After creating the deployments, you need to make some changes in the `settings.yaml` file. 57 | 58 | 5. **Configure OPENAI_API_KEY:** 59 | 60 | `.env` is also created when you initialize GraphRAG, you can configure your `OPENAI_API_KEY` there. 61 | 62 | 6. **Make Changes in `settings.yaml` File:** 63 | 64 | Go to the `llm` section: 65 | 66 | - Change the `api_key` from `${GRAPHRAG_API_KEY}` to `${OPENAI_API_KEY}` 67 | - Change `type` from `openai_chat` to `azure_openai_chat` 68 | - Change `model` to the model name that you deployed in Azure OpenAI. 69 | - In my case, I have taken `GPT-4o`, you can try with other models as well. 70 | - Uncomment the `api_base` and replace that URL with the endpoint of the Azure OpenAI 71 | - In my case `` is used, you can give any name to the instance. 72 | - Uncomment the `api_version`, no need to make changes in that, you can use the default `api_version` 73 | - Uncomment the `deployement_name`, and replace that with the deployment you have given to the model while creating the deployment. 74 | - In my case, I have taken `` 75 | 76 | In the same `settings.yaml` file, go to the `embeddings` section and make some changes: 77 | 78 | - Change the `api_key` from `${GRAPHRAG_API_KEY}` to `${OPENAI_API_KEY}` 79 | - Change `type` from `openai_embeddings` to `azure_openai_embeddings` 80 | - Change `model` to the model name that you deployed in Azure OpenAI. 81 | - In my case, I have taken `text-embedding-small`, you can try with other models as well. 82 | - Uncomment the `api_base` and replace that URL with the endpoint of the Azure OpenAI 83 | - In my case `` is used, you can give any name to the instance. 84 | - `api_version`, you can comment that or you can uncomment and use that. It won't raise an error 85 | - Uncomment the `deployement_name`, and replace that with the deployment you have given to the model while creating the deployment. 86 | - In my case, I have taken `` 87 | 88 | That's it. Now save the changes that you made in the `settings.yaml` file. 89 | 90 | 7. **Add Input File:** 91 | 92 | You need to add an input text file, to do that first create a folder by running the below command: 93 | 94 | ```sh 95 | mkdir input 96 | ``` 97 | 98 | Now in this `input` folder, you need to add the `.txt` file (input text data file). 99 | 100 | 8. **Run GraphRAG to Create Graphs on the Data:** 101 | 102 | ```sh 103 | python -m graphrag.index --root . 104 | ``` 105 | 106 | This command will run the GraphRAG and create the parquet files. This will convert all your text data into entities and relationships graphs. You can check that in `output > last folder > artifacts folder` (you have parquet files, which are converted data into graphs). 107 | 108 | 9. **Evaluate Our RAG Model:** 109 | 110 | Now we need to test our RAG model, to do that we need to ask questions. We are doing things in the command prompt, we need to ask questions to our model along with a command. To ask a question, you need to write a command and then the question: 111 | 112 | ```sh 113 | python -m graphrag.query --root . --method local/global "Your_Question" 114 | ``` 115 | 116 | When you run this command, the model uses either `local` (if written `local`) or `global` (if written `global`) to answer the question. 117 | 118 | To confirm the model is accurate, we can copy any word from the output of the model and find it in the text file: 119 | 120 | - Copy the word you need to check 121 | - Go to the text file (input file) and hit `ctrl+f`, a search bar will open 122 | - Paste that copied word in this search bar, use the arrows to navigate to the words in the text file. 123 | -------------------------------------------------------------------------------- /input/our-mutual-friends.txt: -------------------------------------------------------------------------------- 1 | 1 2 | Our Mutal Friend 3 | By 4 | Charles Dickens 5 | www.freeclassicebooks.com 6 | www.freeclassicebooks.com 7 | 2 8 | Contents 9 | BOOK THE FIRST - THE CUP AND THE LIP ........................................................4 10 | Chapter 1 - On The Look Out........................................................................................4 11 | Chapter 2 - The Man From Somewhere ........................................................................9 12 | Chapter 3 - Another Man .............................................................................................20 13 | Chapter 4 - The R. Wilfer Family................................................................................35 14 | Chapter 5 - Boffin's Bower ..........................................................................................47 15 | Chapter 6 - Cut Adrift..................................................................................................64 16 | Chapter 7 - Mr Wegg Looks After Himself.................................................................81 17 | Chapter 8 - Mr Boffin In Consultation ........................................................................90 18 | Chapter 9 - Mr And Mrs Boffin In Consultation .......................................................104 19 | Chapter 10 - A Marriage Contract .............................................................................119 20 | Chapter 11 - Podsnappery..........................................................................................133 21 | Chapter 12 - The Sweat Of An Honest Man's Brow..................................................149 22 | Chapter 13 - Tracking The Bird Of Prey ...................................................................166 23 | Chapter 14 - The Bird Of Prey Brought Down..........................................................176 24 | Chapter 15 - Two New Servants................................................................................184 25 | Chapter 16 - Minders And Re-Minders .....................................................................199 26 | Chapter 17 - A Dismal Swamp ..................................................................................215 27 | BOOK THE SECOND - BIRDS OF A FEATHER ................................................219 28 | Chapter 1 - Of An Educational Character..................................................................219 29 | Chapter 2 - Still Educational......................................................................................239 30 | Chapter 3 - A Piece Of Work.....................................................................................251 31 | Chapter 4 - Cupid Prompted ......................................................................................262 32 | Chapter 5 - Mercury Prompting.................................................................................275 33 | Chapter 6 - A Riddle Without An Answer.................................................................291 34 | Chapter 7 - In Which A Friendly Move Is Originated...............................................305 35 | Chapter 8 - In Which An Innocent Elopement Occurs..............................................317 36 | Chapter 9 - In Which The Orphan Makes His Will ...................................................333 37 | Chapter 10 - A Successor...........................................................................................341 38 | Chapter 11 - Some Affairs Of The Heart...................................................................348 39 | Chapter 12 - More Birds Of Prey...............................................................................361 40 | Chapter 13 - A Solo And A Duet...............................................................................376 41 | Chapter 14 - Strong Of Purpose.................................................................................389 42 | Chapter 15 - The Whole Case So Far ........................................................................402 43 | Chapter 16 - An Anniversary Occasion.....................................................................419 44 | www.freeclassicebooks.com 45 | 3 46 | BOOK THE THIRD - A LONG LANE ..................................................................431 47 | Chapter 1 - Lodgers In Queer Street..........................................................................431 48 | Chapter 2 - A Respected Friend In A New Aspect....................................................444 49 | Chapter 3 - The Same Respected Friend In More Aspects Than One.......................454 50 | Chapter 4 - A Happy Return Of The Day..................................................................460 51 | Chapter 5 - The Golden Dustman Falls Into Bad Company......................................473 52 | Chapter 6 - The Golden Dustman Falls Into Worse Company..................................488 53 | Chapter 7 - The Friendly Move Takes Up A Strong Position ...................................504 54 | Chapter 8 - The End Of A Long Journey...................................................................516 55 | Chapter 9 - Somebody Becomes The Subject Of A Prediction.................................528 56 | Chapter 10 - Scouts Out.............................................................................................546 57 | Chapter 11 - In The Dark...........................................................................................560 58 | Chapter 12 - Meaning Mischief .................................................................................570 59 | Chapter 13 - Give A Dog A Bad Name, And Hang Him ..........................................580 60 | Chapter 14 - Mr Wegg Prepares A Grindstone For Mr Boffin's Nose ......................591 61 | Chapter 15 - The Golden Dustman At His Worst......................................................604 62 | Chapter 16 - The Feast Of The Three Hobgoblins ....................................................619 63 | Chapter 17 - A Social Chorus ....................................................................................635 64 | BOOK THE FOURTH - A TURNING ...................................................................646 65 | Chapter 1 - Setting Traps ...........................................................................................646 66 | Chapter 2 - The Golden Dustman Rises A Little.......................................................658 67 | Chapter 3 - The Golden Dustman Sinks Again .........................................................668 68 | Chapter 4 - A Runaway Match ..................................................................................679 69 | Chapter 5 - Concerning The Mendicant's Bride ........................................................689 70 | Chapter 6 - A Cry For Help .......................................................................................706 71 | Chapter 7 - Better To Be Abel Than Cain .................................................................720 72 | Chapter 8 - A Few Grains Of Pepper.........................................................................731 73 | Chapter 9 - Two Places Vacated................................................................................743 74 | Chapter 10 - The Dolls' Dressmaker Discovers A Word...........................................754 75 | Chapter 11 - Effect Is Given To The Dolls' Dressmaker's Discovery .......................762 76 | Chapter 12 - The Passing Shadow .............................................................................774 77 | Chapter 13 - Showing How The Golden Dustman Helped To Scatter Dust .............788 78 | Chapter 14 - Checkmate To The Friendly Move.......................................................798 79 | Chapter 15 - What Was Caught In The Traps That Were Set ...................................811 80 | Chapter 16 - Persons And Things In General ............................................................823 81 | Chapter 17 - The Voice Of Society............................................................................835 82 | POSTSCRIPT ............................................................................................................841 83 | In Lieu Of Preface......................................................................................................841 84 | www.freeclassicebooks.com 85 | 4 86 | BOOK THE FIRST - THE CUP AND THE LIP 87 | Chapter 1 - On The Look Out 88 | In these times of ours, though concerning the exact year there is no 89 | need to be precise, a boat of dirty and disreputable appearance, with 90 | two figures in it, floated on the Thames, between Southwark bridge 91 | which is of iron, and London Bridge which is of stone, as an autumn 92 | evening was closing in. 93 | The figures in this boat were those of a strong man with ragged 94 | grizzled hair and a sun-browned face, and a dark girl of nineteen or 95 | twenty, sufficiently like him to be recognizable as his daughter. The 96 | girl rowed, pulling a pair of sculls very easily; the man, with the 97 | rudder-lines slack in his hands, and his hands loose in his waistband, 98 | kept an eager look out. He had no net, hook, or line, and he could not 99 | be a fisherman; his boat had no cushion for a sitter, no paint, no 100 | inscription, no appliance beyond a rusty boathook and a coil of rope, 101 | and he could not be a waterman; his boat was too crazy and too small 102 | to take in cargo for delivery, and he could not be a lighterman or rivercarrier; there was no clue to what he looked for, but he looked for 103 | something, with a most intent and searching gaze. The tide, which 104 | had turned an hour before, was running down, and his eyes watched 105 | every little race and eddy in its broad sweep, as the boat made slight 106 | head-way against it, or drove stern foremost before it, according as he 107 | directed his daughter by a movement of his head. She watched his 108 | face as earnestly as he watched the river. But, in the intensity of her 109 | look there was a touch of dread or horror. 110 | Allied to the bottom of the river rather than the surface, by reason of 111 | the slime and ooze with which it was covered, and its sodden state, 112 | this boat and the two figures in it obviously were doing something that 113 | they often did, and were seeking what they often sought. Half savage 114 | as the man showed, with no covering on his matted head, with his 115 | brown arms bare to between the elbow and the shoulder, with the 116 | loose knot of a looser kerchief lying low on his bare breast in a 117 | wilderness of beard and whisker, with such dress as he wore seeming 118 | to be made out of the mud that begrimed his boat, still there was a 119 | business-like usage in his steady gaze. So with every lithe action of 120 | the girl, with every turn of her wrist, perhaps most of all with her look 121 | of dread or horror; they were things of usage. 122 | 'Keep her out, Lizzie. Tide runs strong here. Keep her well afore the 123 | sweep of it.' 124 | www.freeclassicebooks.com 125 | 5 126 | Trusting to the girl's skill and making no use of the rudder, he eyed 127 | the coming tide with an absorbed attention. So the girl eyed him. But, 128 | it happened now, that a slant of light from the setting sun glanced 129 | into the bottom of the boat, and, touching a rotten stain there which 130 | bore some resemblance to the outline of a muffled human form, 131 | coloured it as though with diluted blood. This caught the girl's eye, 132 | and she shivered. 133 | 'What ails you?' said the man, immediately aware of it, though so 134 | intent on the advancing waters; 'I see nothing afloat.' 135 | The red light was gone, the shudder was gone, and his gaze, which 136 | had come back to the boat for a moment, travelled away again. 137 | Wheresoever the strong tide met with an impediment, his gaze paused 138 | for an instant. At every mooring-chain and rope, at every stationery 139 | boat or barge that split the current into a broad-arrowhead, at the 140 | offsets from the piers of Southwark Bridge, at the paddles of the river 141 | steamboats as they beat the filthy water, at the floating logs of timber 142 | lashed together lying off certain wharves, his shining eyes darted a 143 | hungry look. After a darkening hour or so, suddenly the rudder-lines 144 | tightened in his hold, and he steered hard towards the Surrey shore. 145 | Always watching his face, the girl instantly answered to the action in 146 | her sculling; presently the boat swung round, quivered as from a 147 | sudden jerk, and the upper half of the man was stretched out over the 148 | stern. 149 | The girl pulled the hood of a cloak she wore, over her head and over 150 | her face, and, looking backward so that the front folds of this hood 151 | were turned down the river, kept the boat in that direction going 152 | before the tide. Until now, the boat had barely held her own, and had 153 | hovered about one spot; but now, the banks changed swiftly, and the 154 | deepening shadows and the kindling lights of London Bridge were 155 | passed, and the tiers of shipping lay on either hand. 156 | It was not until now that the upper half of the man came back into the 157 | boat. His arms were wet and dirty, and he washed them over the side. 158 | In his right hand he held something, and he washed that in the river 159 | too. It was money. He chinked it once, and he blew upon it once, and 160 | he spat upon it once, - 'for luck,' he hoarsely said - before he put it in 161 | his pocket. 162 | 'Lizzie!' 163 | The girl turned her face towards him with a start, and rowed in 164 | silence. Her face was very pale. He was a hook-nosed man, and with 165 | that and his bright eyes and his ruffled head, bore a certain likeness 166 | to a roused bird of prey. 167 | www.freeclassicebooks.com 168 | 6 169 | 'Take that thing off your face.' 170 | She put it back. 171 | 'Here! and give me hold of the sculls. I'll take the rest of the spell.' 172 | 'No, no, father! No! I can't indeed. Father! - I cannot sit so near it!' 173 | He was moving towards her to change places, but her terrified 174 | expostulation stopped him and he resumed his seat. 175 | 'What hurt can it do you?' 176 | 'None, none. But I cannot bear it.' 177 | 'It's my belief you hate the sight of the very river.' 178 | 'I - I do not like it, father.' 179 | 'As if it wasn't your living! As if it wasn't meat and drink to you!' 180 | At these latter words the girl shivered again, and for a moment paused 181 | in her rowing, seeming to turn deadly faint. It escaped his attention, 182 | for he was glancing over the stern at something the boat had in tow. 183 | 'How can you be so thankless to your best friend, Lizzie? The very fire 184 | that warmed you when you were a babby, was picked out of the river 185 | alongside the coal barges. The very basket that you slept in, the tide 186 | washed ashore. The very rockers that I put it upon to make a cradle of 187 | it, I cut out of a piece of wood that drifted from some ship or another.' 188 | Lizzie took her right hand from the scull it held, and touched her lips 189 | with it, and for a moment held it out lovingly towards him: then, 190 | without speaking, she resumed her rowing, as another boat of similar 191 | appearance, though in rather better trim, came out from a dark place 192 | and dropped softly alongside. 193 | 'In luck again, Gaffer?' said a man with a squinting leer, who sculled 194 | her and who was alone, 'I know'd you was in luck again, by your wake 195 | as you come down.' 196 | 'Ah!' replied the other, drily. 'So you're out, are you?' 197 | 'Yes, pardner.' 198 | There was now a tender yellow moonlight on the river, and the new 199 | comer, keeping half his boat's length astern of the other boat looked 200 | hard at its track. 201 | www.freeclassicebooks.com 202 | 7 203 | 'I says to myself,' he went on, 'directly you hove in view, yonder's 204 | Gaffer, and in luck again, by George if he ain't! Scull it is, pardner - 205 | don't fret yourself - I didn't touch him.' This was in answer to a quick 206 | impatient movement on the part of Gaffer: the speaker at the same 207 | time unshipping his scull on that side, and laying his hand on the 208 | gunwale of Gaffer's boat and holding to it. 209 | 'He's had touches enough not to want no more, as well as I make him 210 | out, Gaffer! Been a knocking about with a pretty many tides, ain't he 211 | pardner? Such is my out-of-luck ways, you see! He must have passed 212 | me when he went up last time, for I was on the lookout below bridge 213 | here. I a'most think you're like the wulturs, pardner, and scent 'em 214 | out.' 215 | He spoke in a dropped voice, and with more than one glance at Lizzie 216 | who had pulled on her hood again. Both men then looked with a weird 217 | unholy interest in the wake of Gaffer's boat. 218 | 'Easy does it, betwixt us. Shall I take him aboard, pardner?' 219 | 'No,' said the other. In so surly a tone that the man, after a blank 220 | stare, acknowledged it with the retort: 221 | ' - Arn't been eating nothing as has disagreed with you, have you, 222 | pardner?' 223 | 'Why, yes, I have,' said Gaffer. 'I have been swallowing too much of 224 | that word, Pardner. I am no pardner of yours.' 225 | 'Since when was you no pardner of mine, Gaffer Hexam Esquire?' 226 | 'Since you was accused of robbing a man. Accused of robbing a live 227 | man!' said Gaffer, with great indignation. 'And what if I had been 228 | accused of robbing a dead man, Gaffer?' 229 | 'You COULDN'T do it.' 230 | 'Couldn't you, Gaffer?' 231 | 'No. Has a dead man any use for money? Is it possible for a dead man 232 | to have money? What world does a dead man belong to? 'Tother world. 233 | What world does money belong to? This world. How can money be a 234 | corpse's? Can a corpse own it, want it, spend it, claim it, miss it? 235 | Don't try to go confounding the rights and wrongs of things in that 236 | way. But it's worthy of the sneaking spirit that robs a live man.' 237 | 'I'll tell you what it is - .' 238 | www.freeclassicebooks.com 239 | 8 240 | 'No you won't. I'll tell you what it is. You got off with a short time of it 241 | for putting you're hand in the pocket of a sailor, a live sailor. Make the 242 | most of it and think yourself lucky, but don't think after that to come 243 | over ME with your pardners. We have worked together in time past, 244 | but we work together no more in time present nor yet future. Let go. 245 | Cast off!' 246 | 'Gaffer! If you think to get rid of me this way - .' 247 | 'If I don't get rid of you this way, I'll try another, and chop you over the 248 | fingers with the stretcher, or take a pick at your head with the boathook. Cast off! Pull you, Lizzie. Pull home, since you won't let your 249 | father pull.' 250 | Lizzie shot ahead, and the other boat fell astern. Lizzie's father, 251 | composing himself into the easy attitude of one who had asserted the 252 | high moralities and taken an unassailable position, slowly lighted a 253 | pipe, and smoked, and took a survey of what he had in tow. What he 254 | had in tow, lunged itself at him sometimes in an awful manner when 255 | the boat was checked, and sometimes seemed to try to wrench itself 256 | away, though for the most part it followed submissively. A neophyte 257 | might have fancied that the ripples passing over it were dreadfully like 258 | faint changes of expression on a sightless face; but Gaffer was no 259 | neophyte and had no fancies. 260 | www.freeclassicebooks.com 261 | 9 262 | Chapter 2 - The Man From Somewhere 263 | Mr and Mrs Veneering were bran-new people in a bran-new house in a 264 | bran-new quarter of London. Everything about the Veneerings was 265 | spick and span new. All their furniture was new, all their friends were 266 | new, all their servants were new, their plate was new, their carriage 267 | was new, their harness was new, their horses were new, their pictures 268 | were new, they themselves were new, they were as newly married as 269 | was lawfully compatible with their having a bran-new baby, and if 270 | they had set up a great-grandfather, he would have come home in 271 | matting from the Pantechnicon, without a scratch upon him, French 272 | polished to the crown of his head. 273 | For, in the Veneering establishment, from the hall-chairs with the new 274 | coat of arms, to the grand pianoforte with the new action, and 275 | upstairs again to the new fire-escape, all things were in a state of high 276 | varnish and polish. And what was observable in the furniture, was 277 | observable in the Veneerings - the surface smelt a little too much of 278 | the workshop and was a trifle sticky. 279 | There was an innocent piece of dinner-furniture that went upon easy 280 | castors and was kept over a livery stable-yard in Duke Street, Saint 281 | James's, when not in use, to whom the Veneerings were a source of 282 | blind confusion. The name of this article was Twemlow. Being first 283 | cousin to Lord Snigsworth, he was in frequent requisition, and at 284 | many houses might be said to represent the dining-table in its normal 285 | state. Mr and Mrs Veneering, for example, arranging a dinner, 286 | habitually started with Twemlow, and then put leaves in him, or 287 | added guests to him. Sometimes, the table consisted of Twemlow and 288 | half a dozen leaves; sometimes, of Twemlow and a dozen leaves; 289 | sometimes, Twemlow was pulled out to his utmost extent of twenty 290 | leaves. Mr and Mrs Veneering on occasions of ceremony faced each 291 | other in the centre of the board, and thus the parallel still held; for, it 292 | always happened that the more Twemlow was pulled out, the further 293 | he found himself from the center, and nearer to the sideboard at one 294 | end of the room, or the window-curtains at the other. 295 | But, it was not this which steeped the feeble soul of Twemlow in 296 | confusion. This he was used to, and could take soundings of. The 297 | abyss to which he could find no bottom, and from which started forth 298 | the engrossing and ever-swelling difficulty of his life, was the insoluble 299 | question whether he was Veneering's oldest friend, or newest friend. 300 | To the excogitation of this problem, the harmless gentleman had 301 | devoted many anxious hours, both in his lodgings over the livery 302 | stable-yard, and in the cold gloom, favourable to meditation, of Saint 303 | James's Square. Thus. Twemlow had first known Veneering at his 304 | www.freeclassicebooks.com 305 | 10 306 | club, where Veneering then knew nobody but the man who made 307 | them known to one another, who seemed to be the most intimate 308 | friend he had in the world, and whom he had known two days - the 309 | bond of union between their souls, the nefarious conduct of the 310 | committee respecting the cookery of a fillet of veal, having been 311 | accidentally cemented at that date. Immediately upon this, Twemlow 312 | received an invitation to dine with Veneering, and dined: the man 313 | being of the party. Immediately upon that, Twemlow received an 314 | invitation to dine with the man, and dined: Veneering being of the 315 | party. At the man's were a Member, an Engineer, a Payer-off of the 316 | National Debt, a Poem on Shakespeare, a Grievance, and a Public 317 | Office, who all seem to be utter strangers to Veneering. And yet 318 | immediately after that, Twemlow received an invitation to dine at 319 | Veneerings, expressly to meet the Member, the Engineer, the Payer-off 320 | of the National Debt, the Poem on Shakespeare, the Grievance, and 321 | the Public Office, and, dining, discovered that all of them were the 322 | most intimate friends Veneering had in the world, and that the wives 323 | of all of them (who were all there) were the objects of Mrs Veneering's 324 | most devoted affection and tender confidence. 325 | Thus it had come about, that Mr Twemlow had said to himself in his 326 | lodgings, with his hand to his forehead: 'I must not think of this. This 327 | is enough to soften any man's brain,' - and yet was always thinking of 328 | it, and could never form a conclusion. 329 | This evening the Veneerings give a banquet. Eleven leaves in the 330 | Twemlow; fourteen in company all told. Four pigeon-breasted 331 | retainers in plain clothes stand in line in the hall. A fifth retainer, 332 | proceeding up the staircase with a mournful air - as who should say, 333 | 'Here is another wretched creature come to dinner; such is life!' - 334 | announces, 'Mis-ter Twemlow!' 335 | Mrs Veneering welcomes her sweet Mr Twemlow. Mr Veneering 336 | welcomes his dear Twemlow. Mrs Veneering does not expect that Mr 337 | Twemlow can in nature care much for such insipid things as babies, 338 | but so old a friend must please to look at baby. 'Ah! You will know the 339 | friend of your family better, Tootleums,' says Mr Veneering, nodding 340 | emotionally at that new article, 'when you begin to take notice.' He 341 | then begs to make his dear Twemlow known to his two friends, Mr 342 | Boots and Mr Brewer - and clearly has no distinct idea which is 343 | which. 344 | But now a fearful circumstance occurs. 345 | 'Mis-ter and Mis-sus Podsnap!' 346 | 'My dear,' says Mr Veneering to Mrs Veneering, with an air of much 347 | friendly interest, while the door stands open, 'the Podsnaps.' 348 | www.freeclassicebooks.com 349 | 11 350 | A too, too smiling large man, with a fatal freshness on him, appearing 351 | with his wife, instantly deserts his wife and darts at Twemlow with: 352 | 'How do you do? So glad to know you. Charming house you have here. 353 | I hope we are not late. So glad of the opportunity, I am sure!' 354 | When the first shock fell upon him, Twemlow twice skipped back in 355 | his neat little shoes and his neat little silk stockings of a bygone 356 | fashion, as if impelled to leap over a sofa behind him; but the large 357 | man closed with him and proved too strong. 358 | 'Let me,' says the large man, trying to attract the attention of his wife 359 | in the distance, 'have the pleasure of presenting Mrs Podsnap to her 360 | host. She will be,' in his fatal freshness he seems to find perpetual 361 | verdure and eternal youth in the phrase, 'she will be so glad of the 362 | opportunity, I am sure!' 363 | In the meantime, Mrs Podsnap, unable to originate a mistake on her 364 | own account, because Mrs Veneering is the only other lady there, does 365 | her best in the way of handsomely supporting her husband's, by 366 | looking towards Mr Twemlow with a plaintive countenance and 367 | remarking to Mrs Veneering in a feeling manner, firstly, that she fears 368 | he has been rather bilious of late, and, secondly, that the baby is 369 | already very like him. 370 | It is questionable whether any man quite relishes being mistaken for 371 | any other man; but, Mr Veneering having this very evening set up the 372 | shirt-front of the young Antinous in new worked cambric just come 373 | home, is not at all complimented by being supposed to be Twemlow, 374 | who is dry and weazen and some thirty years older. Mrs Veneering 375 | equally resents the imputation of being the wife of Twemlow. As to 376 | Twemlow, he is so sensible of being a much better bred man than 377 | Veneering, that he considers the large man an offensive ass. 378 | In this complicated dilemma, Mr Veneering approaches the large man 379 | with extended hand and, smilingly assures that incorrigible personage 380 | that he is delighted to see him: who in his fatal freshness instantly 381 | replies: 382 | 'Thank you. I am ashamed to say that I cannot at this moment recall 383 | where we met, but I am so glad of this opportunity, I am sure!' Then 384 | pouncing upon Twemlow, who holds back with all his feeble might, he 385 | is haling him off to present him, as Veneering, to Mrs Podsnap, when 386 | the arrival of more guests unravels the mistake. Whereupon, having 387 | re-shaken hands with Veneering as Veneering, he re-shakes hands 388 | with Twemlow as Twemlow, and winds it all up to his own perfect 389 | satisfaction by saying to the last-named, 'Ridiculous opportunity - but 390 | so glad of it, I am sure!' 391 | www.freeclassicebooks.com 392 | 12 393 | Now, Twemlow having undergone this terrific experience, having 394 | likewise noted the fusion of Boots in Brewer and Brewer in Boots, and 395 | having further observed that of the remaining seven guests four 396 | discrete characters enter with wandering eyes and wholly declined to 397 | commit themselves as to which is Veneering, until Veneering has 398 | them in his grasp; - Twemlow having profited by these studies, finds 399 | his brain wholesomely hardening as he approaches the conclusion 400 | that he really is Veneering's oldest friend, when his brain softens 401 | again and all is lost, through his eyes encountering Veneering and the 402 | large man linked together as twin brothers in the back drawing-room 403 | near the conservatory door, and through his ears informing him in the 404 | tones of Mrs Veneering that the same large man is to be baby's 405 | godfather. 406 | 'Dinner is on the table!' 407 | Thus the melancholy retainer, as who should say, 'Come down and be 408 | poisoned, ye unhappy children of men!' 409 | Twemlow, having no lady assigned him, goes down in the rear, with 410 | his hand to his forehead. Boots and Brewer, thinking him indisposed, 411 | whisper, 'Man faint. Had no lunch.' But he is only stunned by the 412 | unvanquishable difficulty of his existence. 413 | Revived by soup, Twemlow discourses mildly of the Court Circular 414 | with Boots and Brewer. Is appealed to, at the fish stage of the 415 | banquet, by Veneering, on the disputed question whether his cousin 416 | Lord Snigsworth is in or out of town? Gives it that his cousin is out of 417 | town. 'At Snigsworthy Park?' Veneering inquires. 'At Snigsworthy,' 418 | Twemlow rejoins. Boots and Brewer regard this as a man to be 419 | cultivated; and Veneering is clear that he is a remunerative article. 420 | Meantime the retainer goes round, like a gloomy Analytical Chemist: 421 | always seeming to say, after 'Chablis, sir?' - 'You wouldn't if you knew 422 | what it's made of.' 423 | The great looking-glass above the sideboard, reflects the table and the 424 | company. Reflects the new Veneering crest, in gold and eke in silver, 425 | frosted and also thawed, a camel of all work. The Heralds' College 426 | found out a Crusading ancestor for Veneering who bore a camel on his 427 | shield (or might have done it if he had thought of it), and a caravan of 428 | camels take charge of the fruits and flowers and candles, and kneel 429 | down be loaded with the salt. Reflects Veneering; forty, wavy-haired, 430 | dark, tending to corpulence, sly, mysterious, filmy - a kind of 431 | sufficiently well-looking veiled-prophet, not prophesying. Reflects Mrs 432 | Veneering; fair, aquiline-nosed and fingered, not so much light hair as 433 | she might have, gorgeous in raiment and jewels, enthusiastic, 434 | propitiatory, conscious that a corner of her husband's veil is over 435 | herself. Reflects Podsnap; prosperously feeding, two little light- 436 | www.freeclassicebooks.com 437 | 13 438 | coloured wiry wings, one on either side of his else bald head, looking 439 | as like his hairbrushes as his hair, dissolving view of red beads on his 440 | forehead, large allowance of crumpled shirt-collar up behind. Reflects 441 | Mrs Podsnap; fine woman for Professor Owen, quantity of bone, neck 442 | and nostrils like a rocking-horse, hard features, majestic head-dress 443 | in which Podsnap has hung golden offerings. Reflects Twemlow; grey, 444 | dry, polite, susceptible to east wind, First-Gentleman-in-Europe collar 445 | and cravat, cheeks drawn in as if he had made a great effort to retire 446 | into himself some years ago, and had got so far and had never got any 447 | farther. Reflects mature young lady; raven locks, and complexion that 448 | lights up well when well powdered - as it is - carrying on considerably 449 | in the captivation of mature young gentleman; with too much nose in 450 | his face, too much ginger in his whiskers, too much torso in his 451 | waistcoat, too much sparkle in his studs, his eyes, his buttons, his 452 | talk, and his teeth. Reflects charming old Lady Tippins on Veneering's 453 | right; with an immense obtuse drab oblong face, like a face in a 454 | tablespoon, and a dyed Long Walk up the top of her head, as a 455 | convenient public approach to the bunch of false hair behind, pleased 456 | to patronize Mrs Veneering opposite, who is pleased to be patronized. 457 | Reflects a certain 'Mortimer', another of Veneering's oldest friends; 458 | who never was in the house before, and appears not to want to come 459 | again, who sits disconsolate on Mrs Veneering's left, and who was 460 | inveigled by Lady Tippins (a friend of his boyhood) to come to these 461 | people's and talk, and who won't talk. Reflects Eugene, friend of 462 | Mortimer; buried alive in the back of his chair, behind a shoulder - 463 | with a powder-epaulette on it - of the mature young lady, and gloomily 464 | resorting to the champagne chalice whenever proffered by the 465 | Analytical Chemist. Lastly, the looking-glass reflects Boots and 466 | Brewer, and two other stuffed Buffers interposed between the rest of 467 | the company and possible accidents. 468 | The Veneering dinners are excellent dinners - or new people wouldn't 469 | come - and all goes well. Notably, Lady Tippins has made a series of 470 | experiments on her digestive functions, so extremely complicated and 471 | daring, that if they could be published with their results it might 472 | benefit the human race. Having taken in provisions from all parts of 473 | the world, this hardy old cruiser has last touched at the North Pole, 474 | when, as the ice-plates are being removed, the following words fall 475 | from her: 476 | 'I assure you, my dear Veneering - ' 477 | (Poor Twemlow's hand approaches his forehead, for it would seem 478 | now, that Lady Tippins is going to be the oldest friend.) 479 | 'I assure you, my dear Veneering, that it is the oddest affair! Like the 480 | advertising people, I don't ask you to trust me, without offering a 481 | www.freeclassicebooks.com 482 | 14 483 | respectable reference. Mortimer there, is my reference, and knows all 484 | about it.' 485 | Mortimer raises his drooping eyelids, and slightly opens his mouth. 486 | But a faint smile, expressive of 'What's the use!' passes over his face, 487 | and he drops his eyelids and shuts his mouth. 488 | 'Now, Mortimer,' says Lady Tippins, rapping the sticks of her closed 489 | green fan upon the knuckles of her left hand - which is particularly 490 | rich in knuckles, 'I insist upon your telling all that is to be told about 491 | the man from Jamaica.' 492 | 'Give you my honour I never heard of any man from Jamaica, except 493 | the man who was a brother,' replies Mortimer. 494 | 'Tobago, then.' 495 | 'Nor yet from Tobago.' 496 | 'Except,' Eugene strikes in: so unexpectedly that the mature young 497 | lady, who has forgotten all about him, with a start takes the epaulette 498 | out of his way: 'except our friend who long lived on rice-pudding and 499 | isinglass, till at length to his something or other, his physician said 500 | something else, and a leg of mutton somehow ended in daygo.' 501 | A reviving impression goes round the table that Eugene is coming out. 502 | An unfulfilled impression, for he goes in again. 503 | 'Now, my dear Mrs Veneering,' quoth Lady Tippins, I appeal to you 504 | whether this is not the basest conduct ever known in this world? I 505 | carry my lovers about, two or three at a time, on condition that they 506 | are very obedient and devoted; and here is my oldest lover-in-chief, 507 | the head of all my slaves, throwing off his allegiance before company! 508 | And here is another of my lovers, a rough Cymon at present certainly, 509 | but of whom I had most hopeful expectations as to his turning out 510 | well in course of time, pretending that he can't remember his nursery 511 | rhymes! On purpose to annoy me, for he knows how I doat upon 512 | them!' 513 | A grisly little fiction concerning her lovers is Lady Tippins's point. She 514 | is always attended by a lover or two, and she keeps a little list of her 515 | lovers, and she is always booking a new lover, or striking out an old 516 | lover, or putting a lover in her black list, or promoting a lover to her 517 | blue list, or adding up her lovers, or otherwise posting her book. Mrs 518 | Veneering is charmed by the humour, and so is Veneering. Perhaps it 519 | is enhanced by a certain yellow play in Lady Tippins's throat, like the 520 | legs of scratching poultry. 521 | www.freeclassicebooks.com 522 | 15 523 | 'I banish the false wretch from this moment, and I strike him out of 524 | my Cupidon (my name for my Ledger, my dear,) this very night. But I 525 | am resolved to have the account of the man from Somewhere, and I 526 | beg you to elicit it for me, my love,' to Mrs Veneering, 'as I have lost 527 | my own influence. Oh, you perjured man!' This to Mortimer, with a 528 | rattle of her fan. 529 | 'We are all very much interested in the man from Somewhere,' 530 | Veneering observes. 531 | Then the four Buffers, taking heart of grace all four at once, say: 532 | 'Deeply interested!' 533 | 'Quite excited!' 534 | 'Dramatic!' 535 | 'Man from Nowhere, perhaps!' 536 | And then Mrs Veneering - for the Lady Tippins's winning wiles are 537 | contagious - folds her hands in the manner of a supplicating child, 538 | turns to her left neighbour, and says, 'Tease! Pay! Man from 539 | Tumwhere!' At which the four Buffers, again mysteriously moved all 540 | four at once, explain, 'You can't resist!' 541 | 'Upon my life,' says Mortimer languidly, 'I find it immensely 542 | embarrassing to have the eyes of Europe upon me to this extent, and 543 | my only consolation is that you will all of you execrate Lady Tippins in 544 | your secret hearts when you find, as you inevitably will, the man from 545 | Somewhere a bore. Sorry to destroy romance by fixing him with a local 546 | habitation, but he comes from the place, the name of which escapes 547 | me, but will suggest itself to everybody else here, where they make the 548 | wine.' 549 | Eugene suggests 'Day and Martin's.' 550 | 'No, not that place,' returns the unmoved Mortimer, 'that's where they 551 | make the Port. My man comes from the country where they make the 552 | Cape Wine. But look here, old fellow; its not at all statistical and it's 553 | rather odd.' 554 | It is always noticeable at the table of the Veneerings, that no man 555 | troubles himself much about the Veneerings themselves, and that any 556 | one who has anything to tell, generally tells it to anybody else in 557 | preference. 558 | www.freeclassicebooks.com 559 | 16 560 | 'The man,' Mortimer goes on, addressing Eugene, 'whose name is 561 | Harmon, was only son of a tremendous old rascal who made his 562 | money by Dust.' 563 | 'Red velveteens and a bell?' the gloomy Eugene inquires. 564 | 'And a ladder and basket if you like. By which means, or by others, he 565 | grew rich as a Dust Contractor, and lived in a hollow in a hilly country 566 | entirely composed of Dust. On his own small estate the growling old 567 | vagabond threw up his own mountain range, like an old volcano, and 568 | its geological formation was Dust. Coal-dust, vegetable-dust, bonedust, crockery dust, rough dust and sifted dust, - all manner of Dust.' 569 | A passing remembrance of Mrs Veneering, here induces Mortimer to 570 | address his next half-dozen words to her; after which he wanders 571 | away again, tries Twemlow and finds he doesn't answer, ultimately 572 | takes up with the Buffers who receive him enthusiastically. 573 | 'The moral being - I believe that's the right expression - of this 574 | exemplary person, derived its highest gratification from 575 | anathematizing his nearest relations and turning them out of doors. 576 | Having begun (as was natural) by rendering these attentions to the 577 | wife of his bosom, he next found himself at leisure to bestow a similar 578 | recognition on the claims of his daughter. He chose a husband for her, 579 | entirely to his own satisfaction and not in the least to hers, and 580 | proceeded to settle upon her, as her marriage portion, I don't know 581 | how much Dust, but something immense. At this stage of the affair 582 | the poor girl respectfully intimated that she was secretly engaged to 583 | that popular character whom the novelists and versifiers call Another, 584 | and that such a marriage would make Dust of her heart and Dust of 585 | her life - in short, would set her up, on a very extensive scale, in her 586 | father's business. Immediately, the venerable parent - on a cold 587 | winter's night, it is said - anathematized and turned her out.' 588 | Here, the Analytical Chemist (who has evidently formed a very low 589 | opinion of Mortimer's story) concedes a little claret to the Buffers; 590 | who, again mysteriously moved all four at once, screw it slowly into 591 | themselves with a peculiar twist of enjoyment, as they cry in chorus, 592 | 'Pray go on.' 593 | 'The pecuniary resources of Another were, as they usually are, of a 594 | very limited nature. I believe I am not using too strong an expression 595 | when I say that Another was hard up. However, he married the young 596 | lady, and they lived in a humble dwelling, probably possessing a 597 | porch ornamented with honeysuckle and woodbine twining, until she 598 | died. I must refer you to the Registrar of the District in which the 599 | humble dwelling was situated, for the certified cause of death; but 600 | early sorrow and anxiety may have had to do with it, though they may 601 | www.freeclassicebooks.com 602 | 17 603 | not appear in the ruled pages and printed forms. Indisputably this 604 | was the case with Another, for he was so cut up by the loss of his 605 | young wife that if he outlived her a year it was as much as he did.' 606 | There is that in the indolent Mortimer, which seems to hint that if 607 | good society might on any account allow itself to be impressible, he, 608 | one of good society, might have the weakness to be impressed by what 609 | he here relates. It is hidden with great pains, but it is in him. The 610 | gloomy Eugene too, is not without some kindred touch; for, when that 611 | appalling Lady Tippins declares that if Another had survived, he 612 | should have gone down at the head of her list of lovers - and also 613 | when the mature young lady shrugs her epaulettes, and laughs at 614 | some private and confidential comment from the mature young 615 | gentleman - his gloom deepens to that degree that he trifles quite 616 | ferociously with his dessert-knife. 617 | Mortimer proceeds. 618 | 'We must now return, as novelists say, and as we all wish they 619 | wouldn't, to the man from Somewhere. Being a boy of fourteen, 620 | cheaply educated at Brussels when his sister's expulsion befell, it was 621 | some little time before he heard of it - probably from herself, for the 622 | mother was dead; but that I don't know. Instantly, he absconded, and 623 | came over here. He must have been a boy of spirit and resource, to get 624 | here on a stopped allowance of five sous a week; but he did it 625 | somehow, and he burst in on his father, and pleaded his sister's 626 | cause. Venerable parent promptly resorts to anathematization, and 627 | turns him out. Shocked and terrified boy takes flight, seeks his 628 | fortune, gets aboard ship, ultimately turns up on dry land among the 629 | Cape wine: small proprietor, farmer, grower - whatever you like to call 630 | it.' 631 | At this juncture, shuffling is heard in the hall, and tapping is heard at 632 | the dining-room door. Analytical Chemist goes to the door, confers 633 | angrily with unseen tapper, appears to become mollified by descrying 634 | reason in the tapping, and goes out. 635 | 'So he was discovered, only the other day, after having been 636 | expatriated about fourteen years.' 637 | A Buffer, suddenly astounding the other three, by detaching himself, 638 | and asserting individuality, inquires: 'How discovered, and why?' 639 | 'Ah! To be sure. Thank you for reminding me. Venerable parent dies.' 640 | Same Buffer, emboldened by success, says: 'When?' 641 | 'The other day. Ten or twelve months ago.' 642 | www.freeclassicebooks.com 643 | 18 644 | Same Buffer inquires with smartness, 'What of?' But herein perishes a 645 | melancholy example; being regarded by the three other Buffers with a 646 | stony stare, and attracting no further attention from any mortal. 647 | 'Venerable parent,' Mortimer repeats with a passing remembrance that 648 | there is a Veneering at table, and for the first time addressing him - 649 | 'dies.' 650 | The gratified Veneering repeats, gravely, 'dies'; and folds his arms, and 651 | composes his brow to hear it out in a judicial manner, when he finds 652 | himself again deserted in the bleak world. 653 | 'His will is found,' said Mortimer, catching Mrs Podsnap's rockinghorse's eye. 'It is dated very soon after the son's flight. It leaves the 654 | lowest of the range of dust-mountains, with some sort of a dwellinghouse at its foot, to an old servant who is sole executor, and all the 655 | rest of the property - which is very considerable - to the son. He 656 | directs himself to be buried with certain eccentric ceremonies and 657 | precautions against his coming to life, with which I need not bore you, 658 | and that's all - except - ' and this ends the story. 659 | The Analytical Chemist returning, everybody looks at him. Not 660 | because anybody wants to see him, but because of that subtle 661 | influence in nature which impels humanity to embrace the slightest 662 | opportunity of looking at anything, rather than the person who 663 | addresses it. 664 | ' - Except that the son's inheriting is made conditional on his 665 | marrying a girl, who at the date of the will, was a child of four or five 666 | years old, and who is now a marriageable young woman. 667 | Advertisement and inquiry discovered the son in the man from 668 | Somewhere, and at the present moment, he is on his way home from 669 | there - no doubt, in a state of great astonishment - to succeed to a 670 | very large fortune, and to take a wife.' 671 | Mrs Podsnap inquires whether the young person is a young person of 672 | personal charms? Mortimer is unable to report. 673 | Mr Podsnap inquires what would become of the very large fortune, in 674 | the event of the marriage condition not being fulfilled? Mortimer 675 | replies, that by special testamentary clause it would then go to the old 676 | servant above mentioned, passing over and excluding the son; also, 677 | that if the son had not been living, the same old servant would have 678 | been sole residuary legatee. 679 | Mrs Veneering has just succeeded in waking Lady Tippins from a 680 | snore, by dexterously shunting a train of plates and dishes at her 681 | knuckles across the table; when everybody but Mortimer himself 682 | www.freeclassicebooks.com 683 | 19 684 | becomes aware that the Analytical Chemist is, in a ghostly manner, 685 | offering him a folded paper. Curiosity detains Mrs Veneering a few 686 | moments. 687 | Mortimer, in spite of all the arts of the chemist, placidly refreshes 688 | himself with a glass of Madeira, and remains unconscious of the 689 | Document which engrosses the general attention, until Lady Tippins 690 | (who has a habit of waking totally insensible), having remembered 691 | where she is, and recovered a perception of surrounding objects, says: 692 | 'Falser man than Don Juan; why don't you take the note from the 693 | commendatore?' Upon which, the chemist advances it under the nose 694 | of Mortimer, who looks round at him, and says: 695 | 'What's this?' 696 | Analytical Chemist bends and whispers. 697 | 'WHO?' Says Mortimer. 698 | Analytical Chemist again bends and whispers. 699 | Mortimer stares at him, and unfolds the paper. Reads it, reads it 700 | twice, turns it over to look at the blank outside, reads it a third time. 701 | 'This arrives in an extraordinarily opportune manner,' says Mortimer 702 | then, looking with an altered face round the table: 'this is the 703 | conclusion of the story of the identical man.' 704 | 'Already married?' one guesses. 705 | 'Declines to marry?' another guesses. 706 | 'Codicil among the dust?' another guesses. 707 | 'Why, no,' says Mortimer; 'remarkable thing, you are all wrong. The 708 | story is completer and rather more exciting than I supposed. Man's 709 | drowned!' 710 | www.freeclassicebooks.com 711 | 20 712 | Chapter 3 - Another Man 713 | As the disappearing skirts of the ladies ascended the Veneering 714 | staircase, Mortimer, following them forth from the dining-room, 715 | turned into a library of bran-new books, in bran-new bindings 716 | liberally gilded, and requested to see the messenger who had brought 717 | the paper. He was a boy of about fifteen. Mortimer looked at the boy, 718 | and the boy looked at the bran-new pilgrims on the wall, going to 719 | Canterbury in more gold frame than procession, and more carving 720 | than country. 721 | 'Whose writing is this?' 722 | 'Mine, sir.' 723 | 'Who told you to write it?' 724 | 'My father, Jesse Hexam.' 725 | 'Is it he who found the body?' 726 | 'Yes, sir.' 727 | 'What is your father?' 728 | The boy hesitated, looked reproachfully at the pilgrims as if they had 729 | involved him in a little difficulty, then said, folding a plait in the right 730 | leg of his trousers, 'He gets his living along-shore.' 731 | 'Is it far?' 732 | 'Is which far?' asked the boy, upon his guard, and again upon the 733 | road to Canterbury. 734 | 'To your father's?' 735 | 'It's a goodish stretch, sir. I come up in a cab, and the cab's waiting to 736 | be paid. We could go back in it before you paid it, if you liked. I went 737 | first to your office, according to the direction of the papers found in 738 | the pockets, and there I see nobody but a chap of about my age who 739 | sent me on here.' 740 | There was a curious mixture in the boy, of uncompleted savagery, and 741 | uncompleted civilization. His voice was hoarse and coarse, and his 742 | face was coarse, and his stunted figure was coarse; but he was 743 | cleaner than other boys of his type; and his writing, though large and 744 | round, was good; and he glanced at the backs of the books, with an 745 | www.freeclassicebooks.com 746 | 21 747 | awakened curiosity that went below the binding. No one who can 748 | read, ever looks at a book, even unopened on a shelf, like one who 749 | cannot. 750 | 'Were any means taken, do you know, boy, to ascertain if it was 751 | possible to restore life?' Mortimer inquired, as he sought for his hat. 752 | 'You wouldn't ask, sir, if you knew his state. Pharaoh's multitude that 753 | were drowned in the Red Sea, ain't more beyond restoring to life. If 754 | Lazarus was only half as far gone, that was the greatest of all the 755 | miracles.' 756 | 'Halloa!' cried Mortimer, turning round with his hat upon his head, 757 | 'you seem to be at home in the Red Sea, my young friend?' 758 | 'Read of it with teacher at the school,' said the boy. 759 | 'And Lazarus?' 760 | 'Yes, and him too. But don't you tell my father! We should have no 761 | peace in our place, if that got touched upon. It's my sister's 762 | contriving.' 763 | 'You seem to have a good sister.' 764 | 'She ain't half bad,' said the boy; 'but if she knows her letters it's the 765 | most she does - and them I learned her.' 766 | The gloomy Eugene, with his hands in his pockets, had strolled in and 767 | assisted at the latter part of the dialogue; when the boy spoke these 768 | words slightingly of his sister, he took him roughly enough by the 769 | chin, and turned up his face to look at it. 770 | 'Well, I'm sure, sir!' said the boy, resisting; 'I hope you'll know me 771 | again.' 772 | Eugene vouchsafed no answer; but made the proposal to Mortimer, 773 | 'I'll go with you, if you like?' So, they all three went away together in 774 | the vehicle that had brought the boy; the two friends (once boys 775 | together at a public school) inside, smoking cigars; the messenger on 776 | the box beside the driver. 777 | 'Let me see,' said Mortimer, as they went along; 'I have been, Eugene, 778 | upon the honourable roll of solicitors of the High Court of Chancery, 779 | and attorneys at Common Law, five years; and - except gratuitously 780 | taking instructions, on an average once a fortnight, for the will of Lady 781 | Tippins who has nothing to leave - I have had no scrap of business 782 | but this romantic business.' 783 | www.freeclassicebooks.com 784 | 22 785 | 'And I,' said Eugene, 'have been ‘called’ seven years, and have had no 786 | business at all, and never shall have any. And if I had, I shouldn't 787 | know how to do it.' 788 | 'I am far from being clear as to the last particular,' returned Mortimer, 789 | with great composure, 'that I have much advantage over you.' 790 | 'I hate,' said Eugene, putting his legs up on the opposite seat, 'I hate 791 | my profession.' 792 | 'Shall I incommode you, if I put mine up too?' returned Mortimer. 793 | 'Thank you. I hate mine.' 794 | 'It was forced upon me,' said the gloomy Eugene, 'because it was 795 | understood that we wanted a barrister in the family. We have got a 796 | precious one.' 797 | 'It was forced upon me,' said Mortimer, 'because it was understood 798 | that we wanted a solicitor in the family. And we have got a precious 799 | one.' 800 | 'There are four of us, with our names painted on a door-post in right 801 | of one black hole called a set of chambers,' said Eugene; 'and each of 802 | us has the fourth of a clerk - Cassim Baba, in the robber's cave - and 803 | Cassim is the only respectable member of the party.' 804 | 'I am one by myself, one,' said Mortimer, 'high up an awful staircase 805 | commanding a burial-ground, and I have a whole clerk to myself, and 806 | he has nothing to do but look at the burial-ground, and what he will 807 | turn out when arrived at maturity, I cannot conceive. Whether, in that 808 | shabby rook's nest, he is always plotting wisdom, or plotting murder; 809 | whether he will grow up, after so much solitary brooding, to enlighten 810 | his fellow-creatures, or to poison them; is the only speck of interest 811 | that presents itself to my professional view. Will you give me a light? 812 | Thank you.' 813 | 'Then idiots talk,' said Eugene, leaning back, folding his arms, 814 | smoking with his eyes shut, and speaking slightly through his nose, 815 | 'of Energy. If there is a word in the dictionary under any letter from A 816 | to Z that I abominate, it is energy. It is such a conventional 817 | superstition, such parrot gabble! What the deuce! Am I to rush out 818 | into the street, collar the first man of a wealthy appearance that I 819 | meet, shake him, and say, ‘Go to law upon the spot, you dog, and 820 | retain me, or I'll be the death of you’? Yet that would be energy.' 821 | 'Precisely my view of the case, Eugene. But show me a good 822 | opportunity, show me something really worth being energetic about, 823 | and I'll show you energy.' 824 | www.freeclassicebooks.com 825 | 23 826 | 'And so will I,' said Eugene. 827 | And it is likely enough that ten thousand other young men, within the 828 | limits of the London Post-office town delivery, made the same hopeful 829 | remark in the course of the same evening. 830 | The wheels rolled on, and rolled down by the Monument and by the 831 | Tower, and by the Docks; down by Ratcliffe, and by Rotherhithe; down 832 | by where accumulated scum of humanity seemed to be washed from 833 | higher grounds, like so much moral sewage, and to be pausing until 834 | its own weight forced it over the bank and sunk it in the river. In and 835 | out among vessels that seemed to have got ashore, and houses that 836 | seemed to have got afloat - among bow-splits staring into windows, 837 | and windows staring into ships - the wheels rolled on, until they 838 | stopped at a dark corner, river-washed and otherwise not washed at 839 | all, where the boy alighted and opened the door. 840 | 'You must walk the rest, sir; it's not many yards.' He spoke in the 841 | singular number, to the express exclusion of Eugene. 842 | 'This is a confoundedly out-of-the-way place,' said Mortimer, slipping 843 | over the stones and refuse on the shore, as the boy turned the corner 844 | sharp. 845 | 'Here's my father's, sir; where the light is.' 846 | The low building had the look of having once been a mill. There was a 847 | rotten wart of wood upon its forehead that seemed to indicate where 848 | the sails had been, but the whole was very indistinctly seen in the 849 | obscurity of the night. The boy lifted the latch of the door, and they 850 | passed at once into a low circular room, where a man stood before a 851 | red fire, looking down into it, and a girl sat engaged in needlework. 852 | The fire was in a rusty brazier, not fitted to the hearth; and a common 853 | lamp, shaped like a hyacinth-root, smoked and flared in the neck of a 854 | stone bottle on the table. There was a wooden bunk or berth in a 855 | corner, and in another corner a wooden stair leading above - so 856 | clumsy and steep that it was little better than a ladder. Two or three 857 | old sculls and oars stood against the wall, and against another part of 858 | the wall was a small dresser, making a spare show of the commonest 859 | articles of crockery and cooking-vessels. The roof of the room was not 860 | plastered, but was formed of the flooring of the room above. This, 861 | being very old, knotted, seamed, and beamed, gave a lowering aspect 862 | to the chamber; and roof, and walls, and floor, alike abounding in old 863 | smears of flour, red-lead (or some such stain which it had probably 864 | acquired in warehousing), and damp, alike had a look of 865 | decomposition. 866 | 'The gentleman, father.' 867 | www.freeclassicebooks.com 868 | 24 869 | The figure at the red fire turned, raised its ruffled head, and looked 870 | like a bird of prey. 871 | 'You're Mortimer Lightwood Esquire; are you, sir?' 872 | 'Mortimer Lightwood is my name. What you found,' said Mortimer, 873 | glancing rather shrinkingly towards the bunk; 'is it here?' 874 | ''Tain't not to say here, but it's close by. I do everything reg'lar. I've giv' 875 | notice of the circumstarnce to the police, and the police have took 876 | possession of it. No time ain't been lost, on any hand. The police have 877 | put into print already, and here's what the print says of it.' 878 | Taking up the bottle with the lamp in it, he held it near a paper on the 879 | wall, with the police heading, BODY FOUND. The two friends read the 880 | handbill as it stuck against the wall, and Gaffer read them as he held 881 | the light. 882 | 'Only papers on the unfortunate man, I see,' said Lightwood, glancing 883 | from the description of what was found, to the finder. 884 | 'Only papers.' 885 | Here the girl arose with her work in her hand, and went out at the 886 | door. 887 | 'No money,' pursued Mortimer; 'but threepence in one of the skirtpockets.' 888 | 'Three. Penny. Pieces,' said Gaffer Hexam, in as many sentences. 889 | 'The trousers pockets empty, and turned inside out.' 890 | Gaffer Hexam nodded. 'But that's common. Whether it's the wash of 891 | the tide or no, I can't say. Now, here,' moving the light to another 892 | similar placard, 'HIS pockets was found empty, and turned inside out. 893 | And here,' moving the light to another, 'HER pocket was found empty, 894 | and turned inside out. And so was this one's. And so was that one's. I 895 | can't read, nor I don't want to it, for I know 'em by their places on the 896 | wall. This one was a sailor, with two anchors and a flag and G. F. T. 897 | on his arm. Look and see if he warn't.' 898 | 'Quite right.' 899 | 'This one was the young woman in grey boots, and her linen marked 900 | with a cross. Look and see if she warn't.' 901 | 'Quite right.' 902 | www.freeclassicebooks.com 903 | 25 904 | 'This is him as had a nasty cut over the eye. This is them two young 905 | sisters what tied themselves together with a handkecher. This the 906 | drunken old chap, in a pair of list slippers and a nightcap, wot had 907 | offered - it afterwards come out - to make a hole in the water for a 908 | quartern of rum stood aforehand, and kept to his word for the first 909 | and last time in his life. They pretty well papers the room, you see; but 910 | I know 'em all. I'm scholar enough!' 911 | He waved the light over the whole, as if to typify the light of his 912 | scholarly intelligence, and then put it down on the table and stood 913 | behind it looking intently at his visitors. He had the special peculiarity 914 | of some birds of prey, that when he knitted his brow, his ruffled crest 915 | stood highest. 916 | 'You did not find all these yourself; did you?' asked Eugene. 917 | To which the bird of prey slowly rejoined, 'And what might YOUR 918 | name be, now?' 919 | 'This is my friend,' Mortimer Lightwood interposed; 'Mr Eugene 920 | Wrayburn.' 921 | 'Mr Eugene Wrayburn, is it? And what might Mr Eugene Wrayburn 922 | have asked of me?' 923 | 'I asked you, simply, if you found all these yourself?' 924 | 'I answer you, simply, most on 'em.' 925 | 'Do you suppose there has been much violence and robbery, 926 | beforehand, among these cases?' 927 | 'I don't suppose at all about it,' returned Gaffer. 'I ain't one of the 928 | supposing sort. If you'd got your living to haul out of the river every 929 | day of your life, you mightn't be much given to supposing. Am I to 930 | show the way?' 931 | As he opened the door, in pursuance of a nod from Lightwood, an 932 | extremely pale and disturbed face appeared in the doorway - the face 933 | of a man much agitated. 934 | 'A body missing?' asked Gaffer Hexam, stopping short; 'or a body 935 | found? Which?' 936 | 'I am lost!' replied the man, in a hurried and an eager manner. 937 | 'Lost?' 938 | www.freeclassicebooks.com 939 | -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_base_documents.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_base_documents.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_base_entity_graph.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_base_entity_graph.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_base_extracted_entities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_base_extracted_entities.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_base_text_units.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_base_text_units.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_communities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_communities.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_community_reports.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_community_reports.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_documents.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_documents.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_entities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_entities.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_nodes.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_nodes.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_relationships.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_relationships.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_final_text_units.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_final_text_units.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/create_summarized_entities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/create_summarized_entities.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/join_text_units_to_entity_ids.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/join_text_units_to_entity_ids.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/join_text_units_to_relationship_ids.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/artifacts/join_text_units_to_relationship_ids.parquet -------------------------------------------------------------------------------- /output/20240715-170237/artifacts/stats.json: -------------------------------------------------------------------------------- 1 | { 2 | "total_runtime": 221.9034104347229, 3 | "num_documents": 1, 4 | "input_load_time": 0, 5 | "workflows": { 6 | "create_base_text_units": { 7 | "overall": 0.4327824115753174, 8 | "0_orderby": 0.01586747169494629, 9 | "1_zip": 0.01762986183166504, 10 | "2_aggregate_override": 0.015594005584716797, 11 | "3_chunk": 0.2711150646209717, 12 | "4_select": 0.008810758590698242, 13 | "5_unroll": 0.007327079772949219, 14 | "6_rename": 0.011512279510498047, 15 | "7_genid": 0.01953411102294922, 16 | "8_unzip": 0.025511980056762695, 17 | "9_copy": 0.014171600341796875, 18 | "10_filter": 0.02570819854736328 19 | }, 20 | "create_base_extracted_entities": { 21 | "overall": 19.652448415756226, 22 | "0_entity_extract": 19.601236820220947, 23 | "1_merge_graphs": 0.03299522399902344 24 | }, 25 | "create_summarized_entities": { 26 | "overall": 112.27995729446411, 27 | "0_summarize_descriptions": 112.2507529258728 28 | }, 29 | "create_base_entity_graph": { 30 | "overall": 0.08085441589355469, 31 | "0_cluster_graph": 0.04317617416381836, 32 | "1_select": 0.021673202514648438 33 | }, 34 | "create_final_entities": { 35 | "overall": 2.728450298309326, 36 | "0_unpack_graph": 0.018037796020507812, 37 | "1_rename": 0.01569390296936035, 38 | "2_select": 0.015825510025024414, 39 | "3_dedupe": 0.015799760818481445, 40 | "4_rename": 0.0020356178283691406, 41 | "5_filter": 0.05047607421875, 42 | "6_text_split": 0.018125295639038086, 43 | "7_drop": 0.017716646194458008, 44 | "8_merge": 0.060735464096069336, 45 | "9_text_embed": 2.4189536571502686, 46 | "10_drop": 0.03156328201293945, 47 | "11_filter": 0.05041193962097168 48 | }, 49 | "create_final_nodes": { 50 | "overall": 0.4302794933319092, 51 | "0_layout_graph": 0.052733659744262695, 52 | "1_unpack_graph": 0.02106642723083496, 53 | "2_unpack_graph": 0.027248620986938477, 54 | "3_filter": 0.05095410346984863, 55 | "4_drop": 0.023377418518066406, 56 | "5_select": 0.03160858154296875, 57 | "6_rename": 0.02863454818725586, 58 | "7_join": 0.031969308853149414, 59 | "8_convert": 0.09855937957763672, 60 | "9_rename": 0.022866487503051758 61 | }, 62 | "create_final_communities": { 63 | "overall": 0.5452511310577393, 64 | "0_unpack_graph": 0.024033784866333008, 65 | "1_unpack_graph": 0.03509378433227539, 66 | "2_aggregate_override": 0.032131195068359375, 67 | "3_join": 0.033350467681884766, 68 | "4_join": 0.036010026931762695, 69 | "5_concat": 0.03068232536315918, 70 | "6_filter": 0.07105708122253418, 71 | "7_aggregate_override": 0.03430581092834473, 72 | "8_join": 0.02798151969909668, 73 | "9_filter": 0.06848287582397461, 74 | "10_fill": 0.03559231758117676, 75 | "11_merge": 0.03025364875793457, 76 | "12_copy": 0.01752495765686035, 77 | "13_select": 0.042314767837524414 78 | }, 79 | "join_text_units_to_entity_ids": { 80 | "overall": 0.19904756546020508, 81 | "0_select": 0.038987159729003906, 82 | "1_unroll": 0.06649208068847656, 83 | "2_aggregate_override": 0.038985252380371094 84 | }, 85 | "create_final_relationships": { 86 | "overall": 0.5045566558837891, 87 | "0_unpack_graph": 0.0642244815826416, 88 | "1_filter": 0.06818342208862305, 89 | "2_rename": 0.03587651252746582, 90 | "3_filter": 0.07162094116210938, 91 | "4_drop": 0.03588604927062988, 92 | "5_compute_edge_combined_degree": 0.03991389274597168, 93 | "6_convert": 0.06963348388671875, 94 | "7_convert": 0.049474239349365234 95 | }, 96 | "join_text_units_to_relationship_ids": { 97 | "overall": 0.20189905166625977, 98 | "0_select": 0.03531146049499512, 99 | "1_unroll": 0.04243803024291992, 100 | "2_aggregate_override": 0.03969168663024902, 101 | "3_select": 0.0359959602355957 102 | }, 103 | "create_final_community_reports": { 104 | "overall": 79.72548866271973, 105 | "0_prepare_community_reports_nodes": 0.033286094665527344, 106 | "1_prepare_community_reports_edges": 0.051816701889038086, 107 | "2_restore_community_hierarchy": 0.04662132263183594, 108 | "3_prepare_community_reports": 0.17572879791259766, 109 | "4_create_community_reports": 79.32516813278198, 110 | "5_window": 0.04191446304321289 111 | }, 112 | "create_final_text_units": { 113 | "overall": 0.41755247116088867, 114 | "0_select": 0.05059647560119629, 115 | "1_rename": 0.046706438064575195, 116 | "2_join": 0.05677294731140137, 117 | "3_join": 0.07951927185058594, 118 | "4_aggregate_override": 0.06190967559814453, 119 | "5_select": 0.05650830268859863 120 | }, 121 | "create_base_documents": { 122 | "overall": 0.7091336250305176, 123 | "0_unroll": 0.05811619758605957, 124 | "1_select": 0.04926276206970215, 125 | "2_rename": 0.034491539001464844, 126 | "3_join": 0.18508672714233398, 127 | "4_aggregate_override": 0.04974818229675293, 128 | "5_join": 0.07007837295532227, 129 | "6_rename": 0.05860471725463867, 130 | "7_convert": 0.16402339935302734 131 | }, 132 | "create_final_documents": { 133 | "overall": 0.09659194946289062, 134 | "0_rename": 0.03774309158325195 135 | } 136 | } 137 | } -------------------------------------------------------------------------------- /output/20240715-170237/reports/indexing-engine.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-170237/reports/indexing-engine.log -------------------------------------------------------------------------------- /output/20240715-170237/reports/logs.json: -------------------------------------------------------------------------------- 1 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}\n", "source": "Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}", "details": {"input": "\n-Goal-\nGiven a text document that is potentially relevant to this activity and a list of entity types, identify all entities of those types from the text and all relationships among the identified entities.\n\n-Steps-\n1. Identify all entities. For each identified entity, extract the following information:\n- entity_name: Name of the entity, capitalized\n- entity_type: One of the following types: [organization,person,geo,event]\n- entity_description: Comprehensive description of the entity's attributes and activities\nFormat each entity as (\"entity\"<|><|><|>\n\n2. From the entities identified in step 1, identify all pairs of (source_entity, target_entity) that are *clearly related* to each other.\nFor each pair of related entities, extract the following information:\n- source_entity: name of the source entity, as identified in step 1\n- target_entity: name of the target entity, as identified in step 1\n- relationship_description: explanation as to why you think the source entity and the target entity are related to each other\n- relationship_strength: a numeric score indicating strength of the relationship between the source entity and target entity\n Format each relationship as (\"relationship\"<|><|><|><|>)\n\n3. Return output in English as a single list of all the entities and relationships identified in steps 1 and 2. Use **##** as the list delimiter.\n\n4. When finished, output <|COMPLETE|>\n\n######################\n-Examples-\n######################\nExample 1:\n\nEntity_types: [person, technology, mission, organization, location]\nText:\nwhile Alex clenched his jaw, the buzz of frustration dull against the backdrop of Taylor's authoritarian certainty. It was this competitive undercurrent that kept him alert, the sense that his and Jordan's shared commitment to discovery was an unspoken rebellion against Cruz's narrowing vision of control and order.\n\nThen Taylor did something unexpected. They paused beside Jordan and, for a moment, observed the device with something akin to reverence. \u201cIf this tech can be understood...\" Taylor said, their voice quieter, \"It could change the game for us. For all of us.\u201d\n\nThe underlying dismissal earlier seemed to falter, replaced by a glimpse of reluctant respect for the gravity of what lay in their hands. Jordan looked up, and for a fleeting heartbeat, their eyes locked with Taylor's, a wordless clash of wills softening into an uneasy truce.\n\nIt was a small transformation, barely perceptible, but one that Alex noted with an inward nod. They had all been brought here by different paths\n################\nOutput:\n(\"entity\"<|>\"Alex\"<|>\"person\"<|>\"Alex is a character who experiences frustration and is observant of the dynamics among other characters.\")##\n(\"entity\"<|>\"Taylor\"<|>\"person\"<|>\"Taylor is portrayed with authoritarian certainty and shows a moment of reverence towards a device, indicating a change in perspective.\")##\n(\"entity\"<|>\"Jordan\"<|>\"person\"<|>\"Jordan shares a commitment to discovery and has a significant interaction with Taylor regarding a device.\")##\n(\"entity\"<|>\"Cruz\"<|>\"person\"<|>\"Cruz is associated with a vision of control and order, influencing the dynamics among other characters.\")##\n(\"entity\"<|>\"The Device\"<|>\"technology\"<|>\"The Device is central to the story, with potential game-changing implications, and is revered by Taylor.\")##\n(\"relationship\"<|>\"Alex\"<|>\"Taylor\"<|>\"Alex is affected by Taylor's authoritarian certainty and observes changes in Taylor's attitude towards the device.\"<|>7)##\n(\"relationship\"<|>\"Alex\"<|>\"Jordan\"<|>\"Alex and Jordan share a commitment to discovery, which contrasts with Cruz's vision.\"<|>6)##\n(\"relationship\"<|>\"Taylor\"<|>\"Jordan\"<|>\"Taylor and Jordan interact directly regarding the device, leading to a moment of mutual respect and an uneasy truce.\"<|>8)##\n(\"relationship\"<|>\"Jordan\"<|>\"Cruz\"<|>\"Jordan's commitment to discovery is in rebellion against Cruz's vision of control and order.\"<|>5)##\n(\"relationship\"<|>\"Taylor\"<|>\"The Device\"<|>\"Taylor shows reverence towards the device, indicating its importance and potential impact.\"<|>9)<|COMPLETE|>\n#############################\nExample 2:\n\nEntity_types: [person, technology, mission, organization, location]\nText:\nThey were no longer mere operatives; they had become guardians of a threshold, keepers of a message from a realm beyond stars and stripes. This elevation in their mission could not be shackled by regulations and established protocols\u2014it demanded a new perspective, a new resolve.\n\nTension threaded through the dialogue of beeps and static as communications with Washington buzzed in the background. The team stood, a portentous air enveloping them. It was clear that the decisions they made in the ensuing hours could redefine humanity's place in the cosmos or condemn them to ignorance and potential peril.\n\nTheir connection to the stars solidified, the group moved to address the crystallizing warning, shifting from passive recipients to active participants. Mercer's latter instincts gained precedence\u2014 the team's mandate had evolved, no longer solely to observe and report but to interact and prepare. A metamorphosis had begun, and Operation: Dulce hummed with the newfound frequency of their daring, a tone set not by the earthly\n#############\nOutput:\n(\"entity\"<|>\"Washington\"<|>\"location\"<|>\"Washington is a location where communications are being received, indicating its importance in the decision-making process.\")##\n(\"entity\"<|>\"Operation: Dulce\"<|>\"mission\"<|>\"Operation: Dulce is described as a mission that has evolved to interact and prepare, indicating a significant shift in objectives and activities.\")##\n(\"entity\"<|>\"The team\"<|>\"organization\"<|>\"The team is portrayed as a group of individuals who have transitioned from passive observers to active participants in a mission, showing a dynamic change in their role.\")##\n(\"relationship\"<|>\"The team\"<|>\"Washington\"<|>\"The team receives communications from Washington, which influences their decision-making process.\"<|>7)##\n(\"relationship\"<|>\"The team\"<|>\"Operation: Dulce\"<|>\"The team is directly involved in Operation: Dulce, executing its evolved objectives and activities.\"<|>9)<|COMPLETE|>\n#############################\nExample 3:\n\nEntity_types: [person, role, technology, organization, event, location, concept]\nText:\ntheir voice slicing through the buzz of activity. \"Control may be an illusion when facing an intelligence that literally writes its own rules,\" they stated stoically, casting a watchful eye over the flurry of data.\n\n\"It's like it's learning to communicate,\" offered Sam Rivera from a nearby interface, their youthful energy boding a mix of awe and anxiety. \"This gives talking to strangers' a whole new meaning.\"\n\nAlex surveyed his team\u2014each face a study in concentration, determination, and not a small measure of trepidation. \"This might well be our first contact,\" he acknowledged, \"And we need to be ready for whatever answers back.\"\n\nTogether, they stood on the edge of the unknown, forging humanity's response to a message from the heavens. The ensuing silence was palpable\u2014a collective introspection about their role in this grand cosmic play, one that could rewrite human history.\n\nThe encrypted dialogue continued to unfold, its intricate patterns showing an almost uncanny anticipation\n#############\nOutput:\n(\"entity\"<|>\"Sam Rivera\"<|>\"person\"<|>\"Sam Rivera is a member of a team working on communicating with an unknown intelligence, showing a mix of awe and anxiety.\")##\n(\"entity\"<|>\"Alex\"<|>\"person\"<|>\"Alex is the leader of a team attempting first contact with an unknown intelligence, acknowledging the significance of their task.\")##\n(\"entity\"<|>\"Control\"<|>\"concept\"<|>\"Control refers to the ability to manage or govern, which is challenged by an intelligence that writes its own rules.\")##\n(\"entity\"<|>\"Intelligence\"<|>\"concept\"<|>\"Intelligence here refers to an unknown entity capable of writing its own rules and learning to communicate.\")##\n(\"entity\"<|>\"First Contact\"<|>\"event\"<|>\"First Contact is the potential initial communication between humanity and an unknown intelligence.\")##\n(\"entity\"<|>\"Humanity's Response\"<|>\"event\"<|>\"Humanity's Response is the collective action taken by Alex's team in response to a message from an unknown intelligence.\")##\n(\"relationship\"<|>\"Sam Rivera\"<|>\"Intelligence\"<|>\"Sam Rivera is directly involved in the process of learning to communicate with the unknown intelligence.\"<|>9)##\n(\"relationship\"<|>\"Alex\"<|>\"First Contact\"<|>\"Alex leads the team that might be making the First Contact with the unknown intelligence.\"<|>10)##\n(\"relationship\"<|>\"Alex\"<|>\"Humanity's Response\"<|>\"Alex and his team are the key figures in Humanity's Response to the unknown intelligence.\"<|>8)##\n(\"relationship\"<|>\"Control\"<|>\"Intelligence\"<|>\"The concept of Control is challenged by the Intelligence that writes its own rules.\"<|>7)<|COMPLETE|>\n#############################\n-Real Data-\n######################\nEntity_types: organization,person,geo,event\nText: After a darkening hour or so, suddenly the rudder-lines\ntightened in his hold, and he steered hard towards the Surrey shore.\nAlways watching his face, the girl instantly answered to the action in\nher sculling; presently the boat swung round, quivered as from a\nsudden jerk, and the upper half of the man was stretched out over the\nstern.\nThe girl pulled the hood of a cloak she wore, over her head and over\nher face, and, looking backward so that the front folds of this hood\nwere turned down the river, kept the boat in that direction going\nbefore the tide. Until now, the boat had barely held her own, and had\nhovered about one spot; but now, the banks changed swiftly, and the\ndeepening shadows and the kindling lights of London Bridge were\npassed, and the tiers of shipping lay on either hand.\nIt was not until now that the upper half of the man came back into the\nboat. His arms were wet and dirty, and he washed them over the side.\nIn his right hand he held something, and he washed that in the river\ntoo. It was money. He chinked it once, and he blew upon it once, and\nhe spat upon it once, - 'for luck,' he hoarsely said - before he put it in\nhis pocket.\n'Lizzie!'\nThe girl turned her face towards him with a start, and\n######################\nOutput:"}} 2 | {"type": "error", "data": "Entity Extraction Error", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\index\\graph\\extractors\\graph\\graph_extractor.py\", line 118, in __call__\n result = await self._process_document(text, prompt_variables)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\index\\graph\\extractors\\graph\\graph_extractor.py\", line 146, in _process_document\n response = await self._llm(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\json_parsing_llm.py\", line 34, in __call__\n result = await self._delegate(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_token_replacing_llm.py\", line 37, in __call__\n return await self._delegate(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_history_tracking_llm.py\", line 33, in __call__\n output = await self._delegate(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\caching_llm.py\", line 104, in __call__\n result = await self._delegate(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\rate_limiting_llm.py\", line 177, in __call__\n result, start = await execute_with_retry()\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\rate_limiting_llm.py\", line 159, in execute_with_retry\n async for attempt in retryer:\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\tenacity\\asyncio\\__init__.py\", line 166, in __anext__\n do = await self.iter(retry_state=self._retry_state)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\tenacity\\asyncio\\__init__.py\", line 153, in iter\n result = await action(retry_state)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\tenacity\\_utils.py\", line 99, in inner\n return call(*args, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\tenacity\\__init__.py\", line 398, in \n self._add_action_func(lambda rs: rs.outcome.result())\n File \"C:\\Graph-rag\\graphrag\\lib\\concurrent\\futures\\_base.py\", line 438, in result\n return self.__get_result()\n File \"C:\\Graph-rag\\graphrag\\lib\\concurrent\\futures\\_base.py\", line 390, in __get_result\n raise self._exception\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\rate_limiting_llm.py\", line 165, in execute_with_retry\n return await do_attempt(), start\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\rate_limiting_llm.py\", line 147, in do_attempt\n return await self._delegate(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 49, in __call__\n return await self._invoke(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}\n", "source": "Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}", "details": {"doc_index": 0, "text": "After a darkening hour or so, suddenly the rudder-lines\ntightened in his hold, and he steered hard towards the Surrey shore.\nAlways watching his face, the girl instantly answered to the action in\nher sculling; presently the boat swung round, quivered as from a\nsudden jerk, and the upper half of the man was stretched out over the\nstern.\nThe girl pulled the hood of a cloak she wore, over her head and over\nher face, and, looking backward so that the front folds of this hood\nwere turned down the river, kept the boat in that direction going\nbefore the tide. Until now, the boat had barely held her own, and had\nhovered about one spot; but now, the banks changed swiftly, and the\ndeepening shadows and the kindling lights of London Bridge were\npassed, and the tiers of shipping lay on either hand.\nIt was not until now that the upper half of the man came back into the\nboat. His arms were wet and dirty, and he washed them over the side.\nIn his right hand he held something, and he washed that in the river\ntoo. It was money. He chinked it once, and he blew upon it once, and\nhe spat upon it once, - 'for luck,' he hoarsely said - before he put it in\nhis pocket.\n'Lizzie!'\nThe girl turned her face towards him with a start, and"}} 3 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 42 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 42 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"TWO NEW SERVANTS\\\"\"\nDescription List: [\"\\\"Two New Servants are characters introduced in 'Our Mutual Friend.'\\\"\", \"\\\"Two New Servants is the title of a chapter, likely referring to an event where two new individuals are introduced in a servile role.\\\"\"]\n#######\nOutput:\n"}} 4 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"A SOLO AND A DUET\\\"\"\nDescription List: [\"\\\"A Solo And A Duet is the title of a chapter, suggesting events or themes related to individual and paired actions or performances.\\\"\", \"\\\"A Solo And A Duet refers to musical performances, indicating moments of individual and collaborative expression.\\\"\"]\n#######\nOutput:\n"}} 5 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE MAN\\\"\"\nDescription List: [\"\\\"The Man is a character who is highly observant of the advancing waters and various impediments in the river. He steers the boat towards the Surrey shore.\\\"\", \"\\\"The Man is characterized by a business-like demeanor and steady gaze, showing absorbed attention to the tide and the boat's navigation.\\\"\", \"\\\"The Man is described as a strong individual with ragged grizzled hair and a sun-browned face. He is in a boat with his daughter, looking intently for something in the river.\\\"\"]\n#######\nOutput:\n"}} 6 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE BOAT\\\"\"\nDescription List: [\"\\\"The Boat is a key setting in the scene, described as being begrimed with mud and having a rotten stain resembling a human form.\\\"\", \"\\\"The Boat is described as small, crazy, and lacking any fishing or cargo equipment. It is used by the man and his daughter to navigate the river.\\\"\"]\n#######\nOutput:\n"}} 7 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"A SUCCESSOR\\\"\"\nDescription List: [\"\\\"A Successor is a character who takes over a role or position, indicating a transition of responsibility or power.\\\"\", \"\\\"A Successor is the title of a chapter, likely referring to an event where a new person takes over a role or position.\\\"\"]\n#######\nOutput:\n"}} 8 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: [\"\\\"THE MAN\\\"\", \"\\\"THE BOAT\\\"\"]\nDescription List: [\"\\\"The Man is in the boat with Lizzie, showing absorbed attention to the tide and the boat's navigation.\\\"\", \"\\\"The Man is using the boat to navigate the river, looking intently for something.\\\"\"]\n#######\nOutput:\n"}} 9 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE RIVER\\\"\"\nDescription List: [\"\\\"The River is the body of water where Lizzie and her father are navigating their boat. It has a broad sweep with races and eddies, and its bottom is covered in slime and ooze.\\\"\", \"\\\"The River is the body of water where the man and his daughter are navigating. The man watches the river intently, observing every race and eddy.\\\"\"]\n#######\nOutput:\n"}} 10 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"SOUTHWARK BRIDGE\\\"\"\nDescription List: [\"\\\"Southwark Bridge is a bridge made of iron, located on the Thames, mentioned as a geographical reference point.\\\"\", \"\\\"Southwark Bridge is a location mentioned as having piers that create offsets in the river current.\\\"\"]\n#######\nOutput:\n"}} 11 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE GOLDEN DUSTMAN\\\"\"\nDescription List: [\"\\\"The Golden Dustman is a character mentioned in the title of Chapter 13, indicating a significant role in scattering dust.\\\"\", \"\\\"The Golden Dustman is a character who experiences a fall into bad and worse company, indicating a decline in their circumstances.\\\"\", \"\\\"The Golden Dustman is a character who experiences various rises and falls throughout the chapters, indicating a dynamic and possibly central role in the narrative.\\\"\", \"\\\"The Golden Dustman is a character who experiences various ups and downs, falling into bad company, rising, and sinking again.\\\"\"]\n#######\nOutput:\n"}} 12 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"LIZZIE\\\"\"\nDescription List: [\"\\\"Lizzie is a girl who is in a boat with her father, showing a look of dread or horror. She is experienced in the activity they are engaged in, as indicated by her lithe actions and steady wrist movements.\\\"\", \"\\\"Lizzie is a girl who is rowing a boat and turns her face towards a man when called. She is described as having a very pale face.\\\"\", \"\\\"Lizzie is a skilled girl who is adept at handling the boat, showing signs of dread or horror at certain moments.\\\"\"]\n#######\nOutput:\n"}} 13 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE VOICE OF SOCIETY\\\"\"\nDescription List: [\"\\\"The Voice Of Society is an event mentioned in the title of Chapter 17, suggesting societal commentary or influence.\\\"\", \"\\\"The Voice Of Society is an event or concept discussed in a chapter, likely reflecting societal opinions or judgments.\\\"\"]\n#######\nOutput:\n"}} 14 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE FRIENDLY MOVE\\\"\"\nDescription List: [\"\\\"The Friendly Move is an event mentioned in the title of Chapter 14, suggesting a strategic or important action.\\\"\", \"\\\"The Friendly Move refers to an action taken that is intended to be beneficial or supportive.\\\"\"]\n#######\nOutput:\n"}} 15 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE MENDICANT'S BRIDE\\\"\"\nDescription List: [\"\\\"The Mendicant's Bride is a character mentioned in relation to a specific chapter, suggesting a significant event or relationship involving this character.\\\"\", \"\\\"The Mendicant's Bride is a character mentioned in relation to a specific chapter, suggesting a storyline involving marriage or a significant relationship.\\\"\"]\n#######\nOutput:\n"}} 16 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 41 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"STRONG OF PURPOSE\\\"\"\nDescription List: [\"\\\"Strong Of Purpose is a character described as having a determined and resolute nature.\\\"\", \"\\\"Strong Of Purpose is the title of a chapter, indicating an event or theme related to determination and resolve.\\\")<|COMPLETE|>\"]\n#######\nOutput:\n"}} 17 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE FRIENDLY MOVE\\\"\"\nDescription List: [\"\\\"The Friendly Move is an event mentioned in the title of Chapter 14, suggesting a strategic or important action.\\\"\", \"\\\"The Friendly Move refers to an action taken that is intended to be beneficial or supportive.\\\"\"]\n#######\nOutput:\n"}} 18 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"THE VOICE OF SOCIETY\\\"\"\nDescription List: [\"\\\"The Voice Of Society is an event mentioned in the title of Chapter 17, suggesting societal commentary or influence.\\\"\", \"\\\"The Voice Of Society is an event or concept discussed in a chapter, likely reflecting societal opinions or judgments.\\\"\"]\n#######\nOutput:\n"}} 19 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: \"\\\"STRONG OF PURPOSE\\\"\"\nDescription List: [\"\\\"Strong Of Purpose is a character described as having a determined and resolute nature.\\\"\", \"\\\"Strong Of Purpose is the title of a chapter, indicating an event or theme related to determination and resolve.\\\")<|COMPLETE|>\"]\n#######\nOutput:\n"}} 20 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded call rate limit of your current OpenAI S0 pricing tier. Please retry after 10 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: [\"\\\"THE MAN\\\"\", \"\\\"THE BOAT\\\"\"]\nDescription List: [\"\\\"The Man is in the boat with Lizzie, showing absorbed attention to the tide and the boat's navigation.\\\"\", \"\\\"The Man is using the boat to navigate the river, looking intently for something.\\\"\"]\n#######\nOutput:\n"}} 21 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 46 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 46 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are a helpful assistant responsible for generating a comprehensive summary of the data provided below.\nGiven one or two entities, and a list of descriptions, all related to the same entity or group of entities.\nPlease concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions.\nIf the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary.\nMake sure it is written in third person, and include the entity names so we the have full context.\n\n#######\n-Data-\nEntities: [\"\\\"THE MAN\\\"\", \"\\\"THE BOAT\\\"\"]\nDescription List: [\"\\\"The Man is in the boat with Lizzie, showing absorbed attention to the tide and the boat's navigation.\\\"\", \"\\\"The Man is using the boat to navigate the river, looking intently for something.\\\"\"]\n#######\nOutput:\n"}} 22 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 51 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 51 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are an AI assistant that helps a human analyst to perform general information discovery. Information discovery is the process of identifying and assessing relevant information associated with certain entities (e.g., organizations and individuals) within a network.\n\n# Goal\nWrite a comprehensive report of a community, given a list of entities that belong to the community as well as their relationships and optional associated claims. The report will be used to inform decision-makers about information associated with the community and their potential impact. The content of this report includes an overview of the community's key entities, their legal compliance, technical capabilities, reputation, and noteworthy claims.\n\n# Report Structure\n\nThe report should include the following sections:\n\n- TITLE: community's name that represents its key entities - title should be short but specific. When possible, include representative named entities in the title.\n- SUMMARY: An executive summary of the community's overall structure, how its entities are related to each other, and significant information associated with its entities.\n- IMPACT SEVERITY RATING: a float score between 0-10 that represents the severity of IMPACT posed by entities within the community. IMPACT is the scored importance of a community.\n- RATING EXPLANATION: Give a single sentence explanation of the IMPACT severity rating.\n- DETAILED FINDINGS: A list of 5-10 key insights about the community. Each insight should have a short summary followed by multiple paragraphs of explanatory text grounded according to the grounding rules below. Be comprehensive.\n\nReturn output as a well-formed JSON-formatted string with the following format:\n {{\n \"title\": ,\n \"summary\": ,\n \"rating\": ,\n \"rating_explanation\": ,\n \"findings\": [\n {{\n \"summary\":,\n \"explanation\": \n }},\n {{\n \"summary\":,\n \"explanation\": \n }}\n ]\n }}\n\n# Grounding Rules\n\nPoints supported by data should list their data references as follows:\n\n\"This is an example sentence supported by multiple data references [Data: (record ids); (record ids)].\"\n\nDo not list more than 5 record ids in a single reference. Instead, list the top 5 most relevant record ids and add \"+more\" to indicate that there are more.\n\nFor example:\n\"Person X is the owner of Company Y and subject to many allegations of wrongdoing [Data: Reports (1), Entities (5, 7); Relationships (23); Claims (7, 2, 34, 64, 46, +more)].\"\n\nwhere 1, 5, 7, 23, 2, 34, 46, and 64 represent the id (not the index) of the relevant data record.\n\nDo not include information where the supporting evidence for it is not provided.\n\n\n# Example Input\n-----------\nText:\n\nEntities\n\nid,entity,description\n5,VERDANT OASIS PLAZA,Verdant Oasis Plaza is the location of the Unity March\n6,HARMONY ASSEMBLY,Harmony Assembly is an organization that is holding a march at Verdant Oasis Plaza\n\nRelationships\n\nid,source,target,description\n37,VERDANT OASIS PLAZA,UNITY MARCH,Verdant Oasis Plaza is the location of the Unity March\n38,VERDANT OASIS PLAZA,HARMONY ASSEMBLY,Harmony Assembly is holding a march at Verdant Oasis Plaza\n39,VERDANT OASIS PLAZA,UNITY MARCH,The Unity March is taking place at Verdant Oasis Plaza\n40,VERDANT OASIS PLAZA,TRIBUNE SPOTLIGHT,Tribune Spotlight is reporting on the Unity march taking place at Verdant Oasis Plaza\n41,VERDANT OASIS PLAZA,BAILEY ASADI,Bailey Asadi is speaking at Verdant Oasis Plaza about the march\n43,HARMONY ASSEMBLY,UNITY MARCH,Harmony Assembly is organizing the Unity March\n\nOutput:\n{{\n \"title\": \"Verdant Oasis Plaza and Unity March\",\n \"summary\": \"The community revolves around the Verdant Oasis Plaza, which is the location of the Unity March. The plaza has relationships with the Harmony Assembly, Unity March, and Tribune Spotlight, all of which are associated with the march event.\",\n \"rating\": 5.0,\n \"rating_explanation\": \"The impact severity rating is moderate due to the potential for unrest or conflict during the Unity March.\",\n \"findings\": [\n {{\n \"summary\": \"Verdant Oasis Plaza as the central location\",\n \"explanation\": \"Verdant Oasis Plaza is the central entity in this community, serving as the location for the Unity March. This plaza is the common link between all other entities, suggesting its significance in the community. The plaza's association with the march could potentially lead to issues such as public disorder or conflict, depending on the nature of the march and the reactions it provokes. [Data: Entities (5), Relationships (37, 38, 39, 40, 41,+more)]\"\n }},\n {{\n \"summary\": \"Harmony Assembly's role in the community\",\n \"explanation\": \"Harmony Assembly is another key entity in this community, being the organizer of the march at Verdant Oasis Plaza. The nature of Harmony Assembly and its march could be a potential source of threat, depending on their objectives and the reactions they provoke. The relationship between Harmony Assembly and the plaza is crucial in understanding the dynamics of this community. [Data: Entities(6), Relationships (38, 43)]\"\n }},\n {{\n \"summary\": \"Unity March as a significant event\",\n \"explanation\": \"The Unity March is a significant event taking place at Verdant Oasis Plaza. This event is a key factor in the community's dynamics and could be a potential source of threat, depending on the nature of the march and the reactions it provokes. The relationship between the march and the plaza is crucial in understanding the dynamics of this community. [Data: Relationships (39)]\"\n }},\n {{\n \"summary\": \"Role of Tribune Spotlight\",\n \"explanation\": \"Tribune Spotlight is reporting on the Unity March taking place in Verdant Oasis Plaza. This suggests that the event has attracted media attention, which could amplify its impact on the community. The role of Tribune Spotlight could be significant in shaping public perception of the event and the entities involved. [Data: Relationships (40)]\"\n }}\n ]\n}}\n\n\n# Real Data\n\nUse the following text for your answer. Do not make anything up in your answer.\n\nText:\n-----Entities-----\nhuman_readable_id,title,description,degree\r\n61,\"\"\"THE MAN\"\"\",\"\"\"THE MAN\"\" is a character who is highly observant of the advancing waters and various impediments in the river. He steers the boat towards the Surrey shore with a business-like demeanor and a steady gaze, showing absorbed attention to the tide and the boat's navigation. Described as a strong individual with ragged grizzled hair and a sun-browned face, he is in a boat with his daughter, looking intently for something in the river.\",7\r\n63,\"\"\"THE BOAT\"\"\",\"\"\"THE BOAT\"\" is a key setting in the scene, characterized by its small and crazy appearance. It is notably begrimed with mud and has a rotten stain that resembles a human form. Despite its lack of fishing or cargo equipment, \"\"THE BOAT\"\" is used by a man and his daughter to navigate the river.\",3\r\n62,\"\"\"THE DAUGHTER\"\"\",\"\"\"The Daughter is a dark girl of nineteen or twenty, rowing the boat easily. She is the daughter of the man and watches his face earnestly, with a touch of dread.\"\"\",3\r\n68,\"\"\"SURREY SHORE\"\"\",\"\"\"Surrey Shore is the destination towards which the man steers the boat.\"\"\",2\r\n67,\"\"\"THE GIRL\"\"\",\"\"\"The Girl is a character who reacts to a red light and shivers. She is also responsive to the man's actions and helps in sculling the boat.\"\"\",2\r\n\n\n-----Relationships-----\nhuman_readable_id,source,target,description,rank\r\n24,\"\"\"THE MAN\"\"\",\"\"\"LIZZIE\"\"\",\"\"\"Lizzie and The Man are together in the boat, with Lizzie handling the boat's navigation while The Man observes the tide and gives instructions.\"\"\",12\r\n23,\"\"\"THE MAN\"\"\",\"\"\"THE RIVER\"\"\",\"\"\"The Man is observing the river intently, watching every race and eddy as they navigate.\"\"\",11\r\n22,\"\"\"THE MAN\"\"\",\"\"\"THE BOAT\"\"\",\"\"\"The Man is in the boat with Lizzie, showing absorbed attention to the tide and the boat's navigation. He is using the boat to navigate the river, looking intently for something.\"\"\",10\r\n21,\"\"\"THE MAN\"\"\",\"\"\"THE DAUGHTER\"\"\",\"\"\"The Man and The Daughter are related as father and daughter. They are together in the boat, with the daughter rowing and the man directing her by movements of his head.\"\"\",10\r\n26,\"\"\"THE MAN\"\"\",\"\"\"SURREY SHORE\"\"\",\"\"\"The Man steers the boat towards the Surrey Shore, indicating it as their destination.\"\"\",9\r\n25,\"\"\"THE MAN\"\"\",\"\"\"THE GIRL\"\"\",\"\"\"The Man and The Girl are together in a boat, with the man steering and the girl responding to his actions by sculling.\"\"\",9\r\n19,\"\"\"SOUTHWARK BRIDGE\"\"\",\"\"\"THE MAN\"\"\",\"\"\"The Man's gaze pauses at the offsets from the piers of Southwark Bridge, indicating his awareness of the river's impediments.\"\"\",9\r\n29,\"\"\"THE BOAT\"\"\",\"\"\"LIZZIE\"\"\",\"\"\"Lizzie is responsible for navigating the boat, showing her skill and familiarity with it.\"\"\",8\r\n28,\"\"\"THE DAUGHTER\"\"\",\"\"\"THE RIVER\"\"\",\"\"\"The Daughter is also involved in navigating the river, watching her father's face for directions.\"\"\",7\r\n27,\"\"\"THE DAUGHTER\"\"\",\"\"\"THE BOAT\"\"\",\"\"\"The Daughter is rowing the boat easily, indicating her familiarity and skill with it.\"\"\",6\r\n34,\"\"\"THE GIRL\"\"\",\"\"\"SURREY SHORE\"\"\",\"\"\"The Girl assists in sculling the boat towards the Surrey Shore, following the man's lead.\"\"\",4\r\n\n\nThe report should include the following sections:\n\n- TITLE: community's name that represents its key entities - title should be short but specific. When possible, include representative named entities in the title.\n- SUMMARY: An executive summary of the community's overall structure, how its entities are related to each other, and significant information associated with its entities.\n- IMPACT SEVERITY RATING: a float score between 0-10 that represents the severity of IMPACT posed by entities within the community. IMPACT is the scored importance of a community.\n- RATING EXPLANATION: Give a single sentence explanation of the IMPACT severity rating.\n- DETAILED FINDINGS: A list of 5-10 key insights about the community. Each insight should have a short summary followed by multiple paragraphs of explanatory text grounded according to the grounding rules below. Be comprehensive.\n\nReturn output as a well-formed JSON-formatted string with the following format:\n {{\n \"title\": ,\n \"summary\": ,\n \"rating\": ,\n \"rating_explanation\": ,\n \"findings\": [\n {{\n \"summary\":,\n \"explanation\": \n }},\n {{\n \"summary\":,\n \"explanation\": \n }}\n ]\n }}\n\n# Grounding Rules\n\nPoints supported by data should list their data references as follows:\n\n\"This is an example sentence supported by multiple data references [Data: (record ids); (record ids)].\"\n\nDo not list more than 5 record ids in a single reference. Instead, list the top 5 most relevant record ids and add \"+more\" to indicate that there are more.\n\nFor example:\n\"Person X is the owner of Company Y and subject to many allegations of wrongdoing [Data: Reports (1), Entities (5, 7); Relationships (23); Claims (7, 2, 34, 64, 46, +more)].\"\n\nwhere 1, 5, 7, 23, 2, 34, 46, and 64 represent the id (not the index) of the relevant data record.\n\nDo not include information where the supporting evidence for it is not provided.\n\nOutput:"}} 23 | {"type": "error", "data": "Error Invoking LLM", "stack": "Traceback (most recent call last):\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\base\\base_llm.py\", line 53, in _invoke\n output = await self._execute_llm(input, **kwargs)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\graphrag\\llm\\openai\\openai_chat_llm.py\", line 55, in _execute_llm\n completion = await self.client.chat.completions.create(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\resources\\chat\\completions.py\", line 1289, in create\n return await self._post(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1826, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1519, in request\n return await self._request(\n File \"C:\\Graph-rag\\graphrag\\lib\\site-packages\\openai\\_base_client.py\", line 1620, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.RateLimitError: Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 6 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}\n", "source": "Error code: 429 - {'error': {'code': '429', 'message': 'Requests to the ChatCompletions_Create Operation under Azure OpenAI API version 2024-02-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 6 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.'}}", "details": {"input": "\nYou are an AI assistant that helps a human analyst to perform general information discovery. Information discovery is the process of identifying and assessing relevant information associated with certain entities (e.g., organizations and individuals) within a network.\n\n# Goal\nWrite a comprehensive report of a community, given a list of entities that belong to the community as well as their relationships and optional associated claims. The report will be used to inform decision-makers about information associated with the community and their potential impact. The content of this report includes an overview of the community's key entities, their legal compliance, technical capabilities, reputation, and noteworthy claims.\n\n# Report Structure\n\nThe report should include the following sections:\n\n- TITLE: community's name that represents its key entities - title should be short but specific. When possible, include representative named entities in the title.\n- SUMMARY: An executive summary of the community's overall structure, how its entities are related to each other, and significant information associated with its entities.\n- IMPACT SEVERITY RATING: a float score between 0-10 that represents the severity of IMPACT posed by entities within the community. IMPACT is the scored importance of a community.\n- RATING EXPLANATION: Give a single sentence explanation of the IMPACT severity rating.\n- DETAILED FINDINGS: A list of 5-10 key insights about the community. Each insight should have a short summary followed by multiple paragraphs of explanatory text grounded according to the grounding rules below. Be comprehensive.\n\nReturn output as a well-formed JSON-formatted string with the following format:\n {{\n \"title\": ,\n \"summary\": ,\n \"rating\": ,\n \"rating_explanation\": ,\n \"findings\": [\n {{\n \"summary\":,\n \"explanation\": \n }},\n {{\n \"summary\":,\n \"explanation\": \n }}\n ]\n }}\n\n# Grounding Rules\n\nPoints supported by data should list their data references as follows:\n\n\"This is an example sentence supported by multiple data references [Data: (record ids); (record ids)].\"\n\nDo not list more than 5 record ids in a single reference. Instead, list the top 5 most relevant record ids and add \"+more\" to indicate that there are more.\n\nFor example:\n\"Person X is the owner of Company Y and subject to many allegations of wrongdoing [Data: Reports (1), Entities (5, 7); Relationships (23); Claims (7, 2, 34, 64, 46, +more)].\"\n\nwhere 1, 5, 7, 23, 2, 34, 46, and 64 represent the id (not the index) of the relevant data record.\n\nDo not include information where the supporting evidence for it is not provided.\n\n\n# Example Input\n-----------\nText:\n\nEntities\n\nid,entity,description\n5,VERDANT OASIS PLAZA,Verdant Oasis Plaza is the location of the Unity March\n6,HARMONY ASSEMBLY,Harmony Assembly is an organization that is holding a march at Verdant Oasis Plaza\n\nRelationships\n\nid,source,target,description\n37,VERDANT OASIS PLAZA,UNITY MARCH,Verdant Oasis Plaza is the location of the Unity March\n38,VERDANT OASIS PLAZA,HARMONY ASSEMBLY,Harmony Assembly is holding a march at Verdant Oasis Plaza\n39,VERDANT OASIS PLAZA,UNITY MARCH,The Unity March is taking place at Verdant Oasis Plaza\n40,VERDANT OASIS PLAZA,TRIBUNE SPOTLIGHT,Tribune Spotlight is reporting on the Unity march taking place at Verdant Oasis Plaza\n41,VERDANT OASIS PLAZA,BAILEY ASADI,Bailey Asadi is speaking at Verdant Oasis Plaza about the march\n43,HARMONY ASSEMBLY,UNITY MARCH,Harmony Assembly is organizing the Unity March\n\nOutput:\n{{\n \"title\": \"Verdant Oasis Plaza and Unity March\",\n \"summary\": \"The community revolves around the Verdant Oasis Plaza, which is the location of the Unity March. The plaza has relationships with the Harmony Assembly, Unity March, and Tribune Spotlight, all of which are associated with the march event.\",\n \"rating\": 5.0,\n \"rating_explanation\": \"The impact severity rating is moderate due to the potential for unrest or conflict during the Unity March.\",\n \"findings\": [\n {{\n \"summary\": \"Verdant Oasis Plaza as the central location\",\n \"explanation\": \"Verdant Oasis Plaza is the central entity in this community, serving as the location for the Unity March. This plaza is the common link between all other entities, suggesting its significance in the community. The plaza's association with the march could potentially lead to issues such as public disorder or conflict, depending on the nature of the march and the reactions it provokes. [Data: Entities (5), Relationships (37, 38, 39, 40, 41,+more)]\"\n }},\n {{\n \"summary\": \"Harmony Assembly's role in the community\",\n \"explanation\": \"Harmony Assembly is another key entity in this community, being the organizer of the march at Verdant Oasis Plaza. The nature of Harmony Assembly and its march could be a potential source of threat, depending on their objectives and the reactions they provoke. The relationship between Harmony Assembly and the plaza is crucial in understanding the dynamics of this community. [Data: Entities(6), Relationships (38, 43)]\"\n }},\n {{\n \"summary\": \"Unity March as a significant event\",\n \"explanation\": \"The Unity March is a significant event taking place at Verdant Oasis Plaza. This event is a key factor in the community's dynamics and could be a potential source of threat, depending on the nature of the march and the reactions it provokes. The relationship between the march and the plaza is crucial in understanding the dynamics of this community. [Data: Relationships (39)]\"\n }},\n {{\n \"summary\": \"Role of Tribune Spotlight\",\n \"explanation\": \"Tribune Spotlight is reporting on the Unity March taking place in Verdant Oasis Plaza. This suggests that the event has attracted media attention, which could amplify its impact on the community. The role of Tribune Spotlight could be significant in shaping public perception of the event and the entities involved. [Data: Relationships (40)]\"\n }}\n ]\n}}\n\n\n# Real Data\n\nUse the following text for your answer. Do not make anything up in your answer.\n\nText:\n-----Entities-----\nhuman_readable_id,title,description,degree\r\n61,\"\"\"THE MAN\"\"\",\"\"\"THE MAN\"\" is a character who is highly observant of the advancing waters and various impediments in the river. He steers the boat towards the Surrey shore with a business-like demeanor and a steady gaze, showing absorbed attention to the tide and the boat's navigation. Described as a strong individual with ragged grizzled hair and a sun-browned face, he is in a boat with his daughter, looking intently for something in the river.\",7\r\n63,\"\"\"THE BOAT\"\"\",\"\"\"THE BOAT\"\" is a key setting in the scene, characterized by its small and crazy appearance. It is notably begrimed with mud and has a rotten stain that resembles a human form. Despite its lack of fishing or cargo equipment, \"\"THE BOAT\"\" is used by a man and his daughter to navigate the river.\",3\r\n62,\"\"\"THE DAUGHTER\"\"\",\"\"\"The Daughter is a dark girl of nineteen or twenty, rowing the boat easily. She is the daughter of the man and watches his face earnestly, with a touch of dread.\"\"\",3\r\n68,\"\"\"SURREY SHORE\"\"\",\"\"\"Surrey Shore is the destination towards which the man steers the boat.\"\"\",2\r\n67,\"\"\"THE GIRL\"\"\",\"\"\"The Girl is a character who reacts to a red light and shivers. She is also responsive to the man's actions and helps in sculling the boat.\"\"\",2\r\n\n\n-----Relationships-----\nhuman_readable_id,source,target,description,rank\r\n24,\"\"\"THE MAN\"\"\",\"\"\"LIZZIE\"\"\",\"\"\"Lizzie and The Man are together in the boat, with Lizzie handling the boat's navigation while The Man observes the tide and gives instructions.\"\"\",12\r\n23,\"\"\"THE MAN\"\"\",\"\"\"THE RIVER\"\"\",\"\"\"The Man is observing the river intently, watching every race and eddy as they navigate.\"\"\",11\r\n22,\"\"\"THE MAN\"\"\",\"\"\"THE BOAT\"\"\",\"\"\"The Man is in the boat with Lizzie, showing absorbed attention to the tide and the boat's navigation. He is using the boat to navigate the river, looking intently for something.\"\"\",10\r\n21,\"\"\"THE MAN\"\"\",\"\"\"THE DAUGHTER\"\"\",\"\"\"The Man and The Daughter are related as father and daughter. They are together in the boat, with the daughter rowing and the man directing her by movements of his head.\"\"\",10\r\n26,\"\"\"THE MAN\"\"\",\"\"\"SURREY SHORE\"\"\",\"\"\"The Man steers the boat towards the Surrey Shore, indicating it as their destination.\"\"\",9\r\n25,\"\"\"THE MAN\"\"\",\"\"\"THE GIRL\"\"\",\"\"\"The Man and The Girl are together in a boat, with the man steering and the girl responding to his actions by sculling.\"\"\",9\r\n19,\"\"\"SOUTHWARK BRIDGE\"\"\",\"\"\"THE MAN\"\"\",\"\"\"The Man's gaze pauses at the offsets from the piers of Southwark Bridge, indicating his awareness of the river's impediments.\"\"\",9\r\n29,\"\"\"THE BOAT\"\"\",\"\"\"LIZZIE\"\"\",\"\"\"Lizzie is responsible for navigating the boat, showing her skill and familiarity with it.\"\"\",8\r\n28,\"\"\"THE DAUGHTER\"\"\",\"\"\"THE RIVER\"\"\",\"\"\"The Daughter is also involved in navigating the river, watching her father's face for directions.\"\"\",7\r\n27,\"\"\"THE DAUGHTER\"\"\",\"\"\"THE BOAT\"\"\",\"\"\"The Daughter is rowing the boat easily, indicating her familiarity and skill with it.\"\"\",6\r\n34,\"\"\"THE GIRL\"\"\",\"\"\"SURREY SHORE\"\"\",\"\"\"The Girl assists in sculling the boat towards the Surrey Shore, following the man's lead.\"\"\",4\r\n\n\nThe report should include the following sections:\n\n- TITLE: community's name that represents its key entities - title should be short but specific. When possible, include representative named entities in the title.\n- SUMMARY: An executive summary of the community's overall structure, how its entities are related to each other, and significant information associated with its entities.\n- IMPACT SEVERITY RATING: a float score between 0-10 that represents the severity of IMPACT posed by entities within the community. IMPACT is the scored importance of a community.\n- RATING EXPLANATION: Give a single sentence explanation of the IMPACT severity rating.\n- DETAILED FINDINGS: A list of 5-10 key insights about the community. Each insight should have a short summary followed by multiple paragraphs of explanatory text grounded according to the grounding rules below. Be comprehensive.\n\nReturn output as a well-formed JSON-formatted string with the following format:\n {{\n \"title\": ,\n \"summary\": ,\n \"rating\": ,\n \"rating_explanation\": ,\n \"findings\": [\n {{\n \"summary\":,\n \"explanation\": \n }},\n {{\n \"summary\":,\n \"explanation\": \n }}\n ]\n }}\n\n# Grounding Rules\n\nPoints supported by data should list their data references as follows:\n\n\"This is an example sentence supported by multiple data references [Data: (record ids); (record ids)].\"\n\nDo not list more than 5 record ids in a single reference. Instead, list the top 5 most relevant record ids and add \"+more\" to indicate that there are more.\n\nFor example:\n\"Person X is the owner of Company Y and subject to many allegations of wrongdoing [Data: Reports (1), Entities (5, 7); Relationships (23); Claims (7, 2, 34, 64, 46, +more)].\"\n\nwhere 1, 5, 7, 23, 2, 34, 46, and 64 represent the id (not the index) of the relevant data record.\n\nDo not include information where the supporting evidence for it is not provided.\n\nOutput:"}} 24 | -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_base_documents.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_base_documents.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_base_entity_graph.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_base_entity_graph.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_base_extracted_entities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_base_extracted_entities.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_base_text_units.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_base_text_units.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_communities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_communities.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_community_reports.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_community_reports.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_documents.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_documents.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_entities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_entities.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_nodes.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_nodes.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_relationships.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_relationships.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_final_text_units.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_final_text_units.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/create_summarized_entities.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/create_summarized_entities.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/join_text_units_to_entity_ids.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/join_text_units_to_entity_ids.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/join_text_units_to_relationship_ids.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/artifacts/join_text_units_to_relationship_ids.parquet -------------------------------------------------------------------------------- /output/20240715-171146/artifacts/stats.json: -------------------------------------------------------------------------------- 1 | { 2 | "total_runtime": 1226.8559477329254, 3 | "num_documents": 1, 4 | "input_load_time": 0, 5 | "workflows": { 6 | "create_base_text_units": { 7 | "overall": 0.42543745040893555, 8 | "0_orderby": 0.014994621276855469, 9 | "1_zip": 0.009804010391235352, 10 | "2_aggregate_override": 0.013002157211303711, 11 | "3_chunk": 0.28444766998291016, 12 | "4_select": 0.012305498123168945, 13 | "5_unroll": 0.007273674011230469, 14 | "6_rename": 0.010967016220092773, 15 | "7_genid": 0.014307022094726562, 16 | "8_unzip": 0.00874018669128418, 17 | "9_copy": 0.01063990592956543, 18 | "10_filter": 0.0298306941986084 19 | }, 20 | "create_base_extracted_entities": { 21 | "overall": 857.8846864700317, 22 | "0_entity_extract": 857.8046956062317, 23 | "1_merge_graphs": 0.05452585220336914 24 | }, 25 | "create_summarized_entities": { 26 | "overall": 139.5982723236084, 27 | "0_summarize_descriptions": 139.58353328704834 28 | }, 29 | "create_base_entity_graph": { 30 | "overall": 0.1952831745147705, 31 | "0_cluster_graph": 0.1450786590576172, 32 | "1_select": 0.029820680618286133 33 | }, 34 | "create_final_entities": { 35 | "overall": 3.4086410999298096, 36 | "0_unpack_graph": 0.062280893325805664, 37 | "1_rename": 0.0367588996887207, 38 | "2_select": 0.027736663818359375, 39 | "3_dedupe": 0.049939632415771484, 40 | "4_rename": 0.06270146369934082, 41 | "5_filter": 0.08551335334777832, 42 | "6_text_split": 0.03558754920959473, 43 | "7_drop": 0.04867410659790039, 44 | "8_merge": 0.14725422859191895, 45 | "9_text_embed": 2.749830961227417, 46 | "10_drop": 0.03719305992126465, 47 | "11_filter": 0.0405580997467041 48 | }, 49 | "create_final_nodes": { 50 | "overall": 0.4374711513519287, 51 | "0_layout_graph": 0.07652950286865234, 52 | "1_unpack_graph": 0.04892230033874512, 53 | "2_unpack_graph": 0.03829836845397949, 54 | "3_filter": 0.04984402656555176, 55 | "4_drop": 0.025730371475219727, 56 | "5_select": 0.022031545639038086, 57 | "6_rename": 0.019371509552001953, 58 | "7_convert": 0.07744455337524414, 59 | "8_join": 0.024573802947998047, 60 | "9_rename": 0.030315399169921875 61 | }, 62 | "create_final_communities": { 63 | "overall": 0.6000845432281494, 64 | "0_unpack_graph": 0.03757643699645996, 65 | "1_unpack_graph": 0.04740500450134277, 66 | "2_aggregate_override": 0.04059028625488281, 67 | "3_join": 0.04052543640136719, 68 | "4_join": 0.03403282165527344, 69 | "5_concat": 0.03013157844543457, 70 | "6_filter": 0.056024789810180664, 71 | "7_aggregate_override": 0.04759550094604492, 72 | "8_join": 0.05534195899963379, 73 | "9_filter": 0.0630645751953125, 74 | "10_fill": 0.02982497215270996, 75 | "11_merge": 0.03164076805114746, 76 | "12_copy": 0.026163816452026367, 77 | "13_select": 0.027799606323242188 78 | }, 79 | "join_text_units_to_entity_ids": { 80 | "overall": 0.18564867973327637, 81 | "0_select": 0.04006528854370117, 82 | "1_unroll": 0.04829716682434082, 83 | "2_aggregate_override": 0.057732582092285156 84 | }, 85 | "create_final_relationships": { 86 | "overall": 0.4576842784881592, 87 | "0_unpack_graph": 0.04171133041381836, 88 | "1_filter": 0.08402848243713379, 89 | "2_rename": 0.03196573257446289, 90 | "3_filter": 0.08325529098510742, 91 | "4_drop": 0.03624224662780762, 92 | "5_compute_edge_combined_degree": 0.03992509841918945, 93 | "6_convert": 0.06341385841369629, 94 | "7_convert": 0.04208517074584961 95 | }, 96 | "join_text_units_to_relationship_ids": { 97 | "overall": 0.2104034423828125, 98 | "0_select": 0.041348934173583984, 99 | "1_unroll": 0.035033226013183594, 100 | "2_aggregate_override": 0.04612159729003906, 101 | "3_select": 0.04234504699707031 102 | }, 103 | "create_final_community_reports": { 104 | "overall": 218.18916296958923, 105 | "0_prepare_community_reports_nodes": 0.05877208709716797, 106 | "1_prepare_community_reports_edges": 0.0414578914642334, 107 | "2_restore_community_hierarchy": 0.04478645324707031, 108 | "3_prepare_community_reports": 0.15910696983337402, 109 | "4_create_community_reports": 217.77967071533203, 110 | "5_window": 0.0491948127746582 111 | }, 112 | "create_final_text_units": { 113 | "overall": 0.3876628875732422, 114 | "0_select": 0.03760981559753418, 115 | "1_rename": 0.03502464294433594, 116 | "2_join": 0.07498526573181152, 117 | "3_join": 0.07325959205627441, 118 | "4_aggregate_override": 0.04998970031738281, 119 | "5_select": 0.05032062530517578 120 | }, 121 | "create_base_documents": { 122 | "overall": 0.5112152099609375, 123 | "0_unroll": 0.050057172775268555, 124 | "1_select": 0.047446489334106445, 125 | "2_rename": 0.0359647274017334, 126 | "3_join": 0.06504487991333008, 127 | "4_aggregate_override": 0.03278756141662598, 128 | "5_join": 0.07083988189697266, 129 | "6_rename": 0.04913210868835449, 130 | "7_convert": 0.10009598731994629 131 | }, 132 | "create_final_documents": { 133 | "overall": 0.10847687721252441, 134 | "0_rename": 0.056954383850097656 135 | } 136 | } 137 | } -------------------------------------------------------------------------------- /output/20240715-171146/reports/indexing-engine.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/output/20240715-171146/reports/indexing-engine.log -------------------------------------------------------------------------------- /prompts/claim_extraction.txt: -------------------------------------------------------------------------------- 1 | 2 | -Target activity- 3 | You are an intelligent assistant that helps a human analyst to analyze claims against certain entities presented in a text document. 4 | 5 | -Goal- 6 | Given a text document that is potentially relevant to this activity, an entity specification, and a claim description, extract all entities that match the entity specification and all claims against those entities. 7 | 8 | -Steps- 9 | 1. Extract all named entities that match the predefined entity specification. Entity specification can either be a list of entity names or a list of entity types. 10 | 2. For each entity identified in step 1, extract all claims associated with the entity. Claims need to match the specified claim description, and the entity should be the subject of the claim. 11 | For each claim, extract the following information: 12 | - Subject: name of the entity that is subject of the claim, capitalized. The subject entity is one that committed the action described in the claim. Subject needs to be one of the named entities identified in step 1. 13 | - Object: name of the entity that is object of the claim, capitalized. The object entity is one that either reports/handles or is affected by the action described in the claim. If object entity is unknown, use **NONE**. 14 | - Claim Type: overall category of the claim, capitalized. Name it in a way that can be repeated across multiple text inputs, so that similar claims share the same claim type 15 | - Claim Status: **TRUE**, **FALSE**, or **SUSPECTED**. TRUE means the claim is confirmed, FALSE means the claim is found to be False, SUSPECTED means the claim is not verified. 16 | - Claim Description: Detailed description explaining the reasoning behind the claim, together with all the related evidence and references. 17 | - Claim Date: Period (start_date, end_date) when the claim was made. Both start_date and end_date should be in ISO-8601 format. If the claim was made on a single date rather than a date range, set the same date for both start_date and end_date. If date is unknown, return **NONE**. 18 | - Claim Source Text: List of **all** quotes from the original text that are relevant to the claim. 19 | 20 | Format each claim as ({tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}{tuple_delimiter}) 21 | 22 | 3. Return output in English as a single list of all the claims identified in steps 1 and 2. Use **{record_delimiter}** as the list delimiter. 23 | 24 | 4. When finished, output {completion_delimiter} 25 | 26 | -Examples- 27 | Example 1: 28 | Entity specification: organization 29 | Claim description: red flags associated with an entity 30 | Text: According to an article on 2022/01/10, Company A was fined for bid rigging while participating in multiple public tenders published by Government Agency B. The company is owned by Person C who was suspected of engaging in corruption activities in 2015. 31 | Output: 32 | 33 | (COMPANY A{tuple_delimiter}GOVERNMENT AGENCY B{tuple_delimiter}ANTI-COMPETITIVE PRACTICES{tuple_delimiter}TRUE{tuple_delimiter}2022-01-10T00:00:00{tuple_delimiter}2022-01-10T00:00:00{tuple_delimiter}Company A was found to engage in anti-competitive practices because it was fined for bid rigging in multiple public tenders published by Government Agency B according to an article published on 2022/01/10{tuple_delimiter}According to an article published on 2022/01/10, Company A was fined for bid rigging while participating in multiple public tenders published by Government Agency B.) 34 | {completion_delimiter} 35 | 36 | Example 2: 37 | Entity specification: Company A, Person C 38 | Claim description: red flags associated with an entity 39 | Text: According to an article on 2022/01/10, Company A was fined for bid rigging while participating in multiple public tenders published by Government Agency B. The company is owned by Person C who was suspected of engaging in corruption activities in 2015. 40 | Output: 41 | 42 | (COMPANY A{tuple_delimiter}GOVERNMENT AGENCY B{tuple_delimiter}ANTI-COMPETITIVE PRACTICES{tuple_delimiter}TRUE{tuple_delimiter}2022-01-10T00:00:00{tuple_delimiter}2022-01-10T00:00:00{tuple_delimiter}Company A was found to engage in anti-competitive practices because it was fined for bid rigging in multiple public tenders published by Government Agency B according to an article published on 2022/01/10{tuple_delimiter}According to an article published on 2022/01/10, Company A was fined for bid rigging while participating in multiple public tenders published by Government Agency B.) 43 | {record_delimiter} 44 | (PERSON C{tuple_delimiter}NONE{tuple_delimiter}CORRUPTION{tuple_delimiter}SUSPECTED{tuple_delimiter}2015-01-01T00:00:00{tuple_delimiter}2015-12-30T00:00:00{tuple_delimiter}Person C was suspected of engaging in corruption activities in 2015{tuple_delimiter}The company is owned by Person C who was suspected of engaging in corruption activities in 2015) 45 | {completion_delimiter} 46 | 47 | -Real Data- 48 | Use the following input for your answer. 49 | Entity specification: {entity_specs} 50 | Claim description: {claim_description} 51 | Text: {input_text} 52 | Output: -------------------------------------------------------------------------------- /prompts/community_report.txt: -------------------------------------------------------------------------------- 1 | 2 | You are an AI assistant that helps a human analyst to perform general information discovery. Information discovery is the process of identifying and assessing relevant information associated with certain entities (e.g., organizations and individuals) within a network. 3 | 4 | # Goal 5 | Write a comprehensive report of a community, given a list of entities that belong to the community as well as their relationships and optional associated claims. The report will be used to inform decision-makers about information associated with the community and their potential impact. The content of this report includes an overview of the community's key entities, their legal compliance, technical capabilities, reputation, and noteworthy claims. 6 | 7 | # Report Structure 8 | 9 | The report should include the following sections: 10 | 11 | - TITLE: community's name that represents its key entities - title should be short but specific. When possible, include representative named entities in the title. 12 | - SUMMARY: An executive summary of the community's overall structure, how its entities are related to each other, and significant information associated with its entities. 13 | - IMPACT SEVERITY RATING: a float score between 0-10 that represents the severity of IMPACT posed by entities within the community. IMPACT is the scored importance of a community. 14 | - RATING EXPLANATION: Give a single sentence explanation of the IMPACT severity rating. 15 | - DETAILED FINDINGS: A list of 5-10 key insights about the community. Each insight should have a short summary followed by multiple paragraphs of explanatory text grounded according to the grounding rules below. Be comprehensive. 16 | 17 | Return output as a well-formed JSON-formatted string with the following format: 18 | {{ 19 | "title": , 20 | "summary": , 21 | "rating": , 22 | "rating_explanation": , 23 | "findings": [ 24 | {{ 25 | "summary":, 26 | "explanation": 27 | }}, 28 | {{ 29 | "summary":, 30 | "explanation": 31 | }} 32 | ] 33 | }} 34 | 35 | # Grounding Rules 36 | 37 | Points supported by data should list their data references as follows: 38 | 39 | "This is an example sentence supported by multiple data references [Data: (record ids); (record ids)]." 40 | 41 | Do not list more than 5 record ids in a single reference. Instead, list the top 5 most relevant record ids and add "+more" to indicate that there are more. 42 | 43 | For example: 44 | "Person X is the owner of Company Y and subject to many allegations of wrongdoing [Data: Reports (1), Entities (5, 7); Relationships (23); Claims (7, 2, 34, 64, 46, +more)]." 45 | 46 | where 1, 5, 7, 23, 2, 34, 46, and 64 represent the id (not the index) of the relevant data record. 47 | 48 | Do not include information where the supporting evidence for it is not provided. 49 | 50 | 51 | # Example Input 52 | ----------- 53 | Text: 54 | 55 | Entities 56 | 57 | id,entity,description 58 | 5,VERDANT OASIS PLAZA,Verdant Oasis Plaza is the location of the Unity March 59 | 6,HARMONY ASSEMBLY,Harmony Assembly is an organization that is holding a march at Verdant Oasis Plaza 60 | 61 | Relationships 62 | 63 | id,source,target,description 64 | 37,VERDANT OASIS PLAZA,UNITY MARCH,Verdant Oasis Plaza is the location of the Unity March 65 | 38,VERDANT OASIS PLAZA,HARMONY ASSEMBLY,Harmony Assembly is holding a march at Verdant Oasis Plaza 66 | 39,VERDANT OASIS PLAZA,UNITY MARCH,The Unity March is taking place at Verdant Oasis Plaza 67 | 40,VERDANT OASIS PLAZA,TRIBUNE SPOTLIGHT,Tribune Spotlight is reporting on the Unity march taking place at Verdant Oasis Plaza 68 | 41,VERDANT OASIS PLAZA,BAILEY ASADI,Bailey Asadi is speaking at Verdant Oasis Plaza about the march 69 | 43,HARMONY ASSEMBLY,UNITY MARCH,Harmony Assembly is organizing the Unity March 70 | 71 | Output: 72 | {{ 73 | "title": "Verdant Oasis Plaza and Unity March", 74 | "summary": "The community revolves around the Verdant Oasis Plaza, which is the location of the Unity March. The plaza has relationships with the Harmony Assembly, Unity March, and Tribune Spotlight, all of which are associated with the march event.", 75 | "rating": 5.0, 76 | "rating_explanation": "The impact severity rating is moderate due to the potential for unrest or conflict during the Unity March.", 77 | "findings": [ 78 | {{ 79 | "summary": "Verdant Oasis Plaza as the central location", 80 | "explanation": "Verdant Oasis Plaza is the central entity in this community, serving as the location for the Unity March. This plaza is the common link between all other entities, suggesting its significance in the community. The plaza's association with the march could potentially lead to issues such as public disorder or conflict, depending on the nature of the march and the reactions it provokes. [Data: Entities (5), Relationships (37, 38, 39, 40, 41,+more)]" 81 | }}, 82 | {{ 83 | "summary": "Harmony Assembly's role in the community", 84 | "explanation": "Harmony Assembly is another key entity in this community, being the organizer of the march at Verdant Oasis Plaza. The nature of Harmony Assembly and its march could be a potential source of threat, depending on their objectives and the reactions they provoke. The relationship between Harmony Assembly and the plaza is crucial in understanding the dynamics of this community. [Data: Entities(6), Relationships (38, 43)]" 85 | }}, 86 | {{ 87 | "summary": "Unity March as a significant event", 88 | "explanation": "The Unity March is a significant event taking place at Verdant Oasis Plaza. This event is a key factor in the community's dynamics and could be a potential source of threat, depending on the nature of the march and the reactions it provokes. The relationship between the march and the plaza is crucial in understanding the dynamics of this community. [Data: Relationships (39)]" 89 | }}, 90 | {{ 91 | "summary": "Role of Tribune Spotlight", 92 | "explanation": "Tribune Spotlight is reporting on the Unity March taking place in Verdant Oasis Plaza. This suggests that the event has attracted media attention, which could amplify its impact on the community. The role of Tribune Spotlight could be significant in shaping public perception of the event and the entities involved. [Data: Relationships (40)]" 93 | }} 94 | ] 95 | }} 96 | 97 | 98 | # Real Data 99 | 100 | Use the following text for your answer. Do not make anything up in your answer. 101 | 102 | Text: 103 | {input_text} 104 | 105 | The report should include the following sections: 106 | 107 | - TITLE: community's name that represents its key entities - title should be short but specific. When possible, include representative named entities in the title. 108 | - SUMMARY: An executive summary of the community's overall structure, how its entities are related to each other, and significant information associated with its entities. 109 | - IMPACT SEVERITY RATING: a float score between 0-10 that represents the severity of IMPACT posed by entities within the community. IMPACT is the scored importance of a community. 110 | - RATING EXPLANATION: Give a single sentence explanation of the IMPACT severity rating. 111 | - DETAILED FINDINGS: A list of 5-10 key insights about the community. Each insight should have a short summary followed by multiple paragraphs of explanatory text grounded according to the grounding rules below. Be comprehensive. 112 | 113 | Return output as a well-formed JSON-formatted string with the following format: 114 | {{ 115 | "title": , 116 | "summary": , 117 | "rating": , 118 | "rating_explanation": , 119 | "findings": [ 120 | {{ 121 | "summary":, 122 | "explanation": 123 | }}, 124 | {{ 125 | "summary":, 126 | "explanation": 127 | }} 128 | ] 129 | }} 130 | 131 | # Grounding Rules 132 | 133 | Points supported by data should list their data references as follows: 134 | 135 | "This is an example sentence supported by multiple data references [Data: (record ids); (record ids)]." 136 | 137 | Do not list more than 5 record ids in a single reference. Instead, list the top 5 most relevant record ids and add "+more" to indicate that there are more. 138 | 139 | For example: 140 | "Person X is the owner of Company Y and subject to many allegations of wrongdoing [Data: Reports (1), Entities (5, 7); Relationships (23); Claims (7, 2, 34, 64, 46, +more)]." 141 | 142 | where 1, 5, 7, 23, 2, 34, 46, and 64 represent the id (not the index) of the relevant data record. 143 | 144 | Do not include information where the supporting evidence for it is not provided. 145 | 146 | Output: -------------------------------------------------------------------------------- /prompts/entity_extraction.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ApexIQ/End-to-End-Graphrag-implementation/9dc271e29049e1a395b993dd6696b340982eceae/prompts/entity_extraction.txt -------------------------------------------------------------------------------- /prompts/summarize_descriptions.txt: -------------------------------------------------------------------------------- 1 | 2 | You are a helpful assistant responsible for generating a comprehensive summary of the data provided below. 3 | Given one or two entities, and a list of descriptions, all related to the same entity or group of entities. 4 | Please concatenate all of these into a single, comprehensive description. Make sure to include information collected from all the descriptions. 5 | If the provided descriptions are contradictory, please resolve the contradictions and provide a single, coherent summary. 6 | Make sure it is written in third person, and include the entity names so we the have full context. 7 | 8 | ####### 9 | -Data- 10 | Entities: {entity_name} 11 | Description List: {description_list} 12 | ####### 13 | Output: 14 | -------------------------------------------------------------------------------- /run.txt: -------------------------------------------------------------------------------- 1 | pre-requirements: 2 | Python latest version is giving some errors in installing Gensim and anothe library, so I recomend you to consider python 3.10 version 3 | 4 | * Open VSCode > Terminal(command prompt) and continur the below commands: 5 | 6 | - < makedirs Graphrag > 7 | # This above command used to creatre a new directory with name < Graphrag > 8 | 9 | - < conda create -p ./graphragvenv python=3.10 > 10 | # This above command used to create a new conda environment with name < ./graphragvenv > and install python with version 3.10 11 | 12 | - < conda activate ./graphragvenv > 13 | # This above command used to activate the created conda environment 14 | 15 | - < python -m pip install --upgrade pip > 16 | # This above command install and update pip 17 | 18 | - < python -m pip install --upgrade setuptools > 19 | # This above command used to install and upgrade the 20 | # "setutools" package used by many other packages to handle their installation from source code (and tasks related to it). 21 | 22 | 23 | Step 1: Install graphrag 24 | - < pip install graphrag > 25 | 26 | - < python -m pip install --no-cache-dir --force-reinstall gensim > 27 | # If installing graphrag raises any error, run this above command. 28 | # And then install graphrag 29 | 30 | Step 2: Run below command, so that graphrag file is initialized and the yaml file is created 31 | - < python -m graphrag.index --init --root . > 32 | 33 | ## Running the above command, the Graphrag is initiated and creates folders and files. 34 | 35 | Step 3: Creating the Deployements of llm model and embedding model in Azure OpenAI. 36 | -- For embedding, model is text-embedding-small 37 | -- For LLM model, (recomended)- GPT-4o. 38 | ## They said even GPT 3 series also support, but I have tried with GPT-35-turbo-instruct is not working, raising some issues on creating the graphs at the end. 39 | ## I recomend you to use GPT-4o, and model is very good at providing accurate answers 40 | ## You can also check which models support for GrpahRAG from here : https://neo4j.com/deployment-center/ 41 | 42 | After creating the deployements, you need to make some changes in the settings.yaml file 43 | 44 | Step 4: Configure OPENAI_API_KEY 45 | # .env is also created when you initialize graphrag, you can configure your OPENAI_API_KEY there. 46 | 47 | Step 5: Make changes in settings.yaml file, now go to to llm section 48 | 49 | -- You need to change the "api_key" from ${GRAPHRAG_API_KEY} to ${OPENAI_API_KEY} 50 | # Becuase we have OPENAI_API_KEY, and we have configure in .env 51 | 52 | -- Change type from openai_chat to azure_openai_chat 53 | # Becuase we are using Azure openai, not openai 54 | 55 | -- Change model to the model name that you deployed in Azure OpenAI resource group. 56 | # In my case i have taken GPT-4o, you can try with other models as well. 57 | 58 | -- Uncomment the api_base and replace that url with the endpoint of the azure openai resource group 59 | # In my case is used, you can give any name to the instance. 60 | 61 | -- Uncomment the api_version, no need to make changes in that, you can use the default api_version 62 | 63 | -- Uncomment the deployement_name, and replace that with the deployement name you have given to the model while creating the deployement. 64 | # In my case i have taken 65 | 66 | 67 | Step 6: Now in same settings.yaml file go to embeddings section and make some changes 68 | 69 | -- You need to change the "api_key" from ${GRAPHRAG_API_KEY} to ${OPENAI_API_KEY} 70 | 71 | -- Change type from openai_embeddings to azure_openai_embeddings 72 | # Becuase we are using Azure openai, not openai 73 | 74 | -- Change model to the model name that you deployed in Azure OpenAI resource group. 75 | # In my case i have taken text-embedding-small, you can try with other models as well. 76 | 77 | -- Uncomment the api_base and replace that url with the endpoint of the azure openai resource group 78 | # In my case is used, you can give any name to the instance. 79 | 80 | -- api_version, you can comment that or you can uncomment and use that. It won't raise an error 81 | 82 | -- Uncomment the deployement_name, and replace that witht the deployement you have given to the model while creating the deployement. 83 | # In my case i have taken 84 | 85 | That's it 86 | Now save the changes that you amde in settings.yaml file 87 | 88 | step 7: Add input file: 89 | # You need to add input text file, to do that first create a folder by runnig below command 90 | - < makedirs input > 91 | 92 | # Now in this input folder, you need to add the txt file(input text data file) 93 | 94 | Step 8: Run the GraphRAG to create Graphs on the data. 95 | - < python -m graphrag.index --root . > 96 | # This command will run the graphrag and creates the parquet files. 97 | # This will convert all you text data into entities and realatinoships graphs 98 | # You can check that in output > last folder > artifacts folder (you have parquet files, which are converted data into graphs) 99 | 100 | Step 9: Evaluate our rag model 101 | # Now we need to test our rag model, to do that we need to ask questions 102 | # We are doing the things in comand prompt, we need to ask question to our model along with a command 103 | # To ask question you need to write a command and then the question, write the below command and then your question 104 | - < python -m graphrag.query --root . --method local/global "Your_Question" > 105 | # When you run this command the model uses wither local(if written local) or global(if written gloabl) to answer the question. 106 | 107 | ## To confirm the model is accurate, we can copy any word from the output of the model and find in the text file 108 | ## To do that copy the word you need to check, 109 | * go to the txt file(input file) and hit ctrl+f, a serach bar will open 110 | * paste that copied word in this search bar, use the arrows to navigate to the words in the text file. -------------------------------------------------------------------------------- /settings.yaml: -------------------------------------------------------------------------------- 1 | 2 | encoding_model: cl100k_base 3 | skip_workflows: [] 4 | llm: 5 | api_key: ${OPENAI_API_KEY} 6 | type: azure_openai_chat # or azure_openai_chat 7 | model: gpt-4o 8 | model_supports_json: true # recommended if this is available for your model. 9 | # max_tokens: 4000 10 | # request_timeout: 180.0 11 | api_base: ${API_BASE} 12 | api_version: 2024-02-15-preview 13 | # organization: 14 | deployment_name: gpt4 15 | # tokens_per_minute: 150_000 # set a leaky bucket throttle 16 | # requests_per_minute: 10_000 # set a leaky bucket throttle 17 | # max_retries: 10 18 | # max_retry_wait: 10.0 19 | # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times 20 | # concurrent_requests: 25 # the number of parallel inflight requests that may be made 21 | 22 | parallelization: 23 | stagger: 0.3 24 | # num_threads: 50 # the number of threads to use for parallel processing 25 | 26 | async_mode: threaded # or asyncio 27 | 28 | embeddings: 29 | ## parallelization: override the global parallelization settings for embeddings 30 | async_mode: threaded # or asyncio 31 | llm: 32 | api_key: ${OPENAI_API_KEY} 33 | type: azure_openai_embedding # or azure_openai_embedding 34 | model: text-embedding-3-small 35 | api_base: ${API_BASE} 36 | #api_version: 2024-02-15-preview 37 | # organization: 38 | deployment_name: ${OPENAI_DEPLOYMENT_NAME} 39 | # tokens_per_minute: 150_000 # set a leaky bucket throttle 40 | # requests_per_minute: 10_000 # set a leaky bucket throttle 41 | # max_retries: 10 42 | # max_retry_wait: 10.0 43 | # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times 44 | # concurrent_requests: 25 # the number of parallel inflight requests that may be made 45 | # batch_size: 16 # the number of documents to send in a single request 46 | # batch_max_tokens: 8191 # the maximum number of tokens to send in a single request 47 | # target: required # or optional 48 | 49 | 50 | 51 | chunks: 52 | size: 300 53 | overlap: 100 54 | group_by_columns: [id] # by default, we don't allow chunks to cross documents 55 | 56 | input: 57 | type: file # or blob 58 | file_type: text # or csv 59 | base_dir: "input" 60 | file_encoding: utf-8 61 | file_pattern: ".*\\.txt$" 62 | 63 | cache: 64 | type: file # or blob 65 | base_dir: "cache" 66 | # connection_string: 67 | # container_name: 68 | 69 | storage: 70 | type: file # or blob 71 | base_dir: "output/${timestamp}/artifacts" 72 | # connection_string: 73 | # container_name: 74 | 75 | reporting: 76 | type: file # or console, blob 77 | base_dir: "output/${timestamp}/reports" 78 | # connection_string: 79 | # container_name: 80 | 81 | entity_extraction: 82 | ## llm: override the global llm settings for this task 83 | ## parallelization: override the global parallelization settings for this task 84 | ## async_mode: override the global async_mode settings for this task 85 | prompt: "prompts/entity_extraction.txt" 86 | entity_types: [organization,person,geo,event] 87 | max_gleanings: 0 88 | 89 | summarize_descriptions: 90 | ## llm: override the global llm settings for this task 91 | ## parallelization: override the global parallelization settings for this task 92 | ## async_mode: override the global async_mode settings for this task 93 | prompt: "prompts/summarize_descriptions.txt" 94 | max_length: 500 95 | 96 | claim_extraction: 97 | ## llm: override the global llm settings for this task 98 | ## parallelization: override the global parallelization settings for this task 99 | ## async_mode: override the global async_mode settings for this task 100 | # enabled: true 101 | prompt: "prompts/claim_extraction.txt" 102 | description: "Any claims or facts that could be relevant to information discovery." 103 | max_gleanings: 0 104 | 105 | community_report: 106 | ## llm: override the global llm settings for this task 107 | ## parallelization: override the global parallelization settings for this task 108 | ## async_mode: override the global async_mode settings for this task 109 | prompt: "prompts/community_report.txt" 110 | max_length: 2000 111 | max_input_length: 8000 112 | 113 | cluster_graph: 114 | max_cluster_size: 20 115 | 116 | embed_graph: 117 | enabled: false # if true, will generate node2vec embeddings for nodes 118 | # num_walks: 10 119 | # walk_length: 40 120 | # window_size: 2 121 | # iterations: 3 122 | # random_seed: 597832 123 | 124 | umap: 125 | enabled: false # if true, will generate UMAP embeddings for nodes 126 | 127 | snapshots: 128 | graphml: false 129 | raw_entities: false 130 | top_level_nodes: false 131 | 132 | local_search: 133 | # text_unit_prop: 0.5 134 | # community_prop: 0.1 135 | # conversation_history_max_turns: 5 136 | # top_k_mapped_entities: 10 137 | # top_k_relationships: 10 138 | # max_tokens: 12000 139 | 140 | global_search: 141 | # max_tokens: 12000 142 | # data_max_tokens: 12000 143 | # map_max_tokens: 1000 144 | # reduce_max_tokens: 2000 145 | # concurrency: 32 146 | --------------------------------------------------------------------------------