├── README.rst ├── ai_settings.yaml ├── api_key.json ├── audio └── user_input.wav ├── auto_gpt_workspace └── pychatgpt_ui ├── blog_examples └── pychatgpt_ui ├── data ├── bbc_data.csv ├── bbc_data.csv.jsonl └── filename.jsonl ├── docs └── LLM.pdf ├── images ├── api_key.png ├── api_snippet.png ├── app_run.png ├── gpt4all_demo.png ├── gpt4all_snippet.png ├── llm_demo.png ├── main_ui.png ├── main_ui_.png ├── qa_chainbot.png └── voice_bot_demo.png ├── models └── pychatgpt_ui ├── pychatgpt_gui ├── __init__.py ├── api.py ├── app.py ├── examples.json ├── flagged │ └── log.csv ├── index.json ├── pygpt4all_cli.py ├── state │ ├── log_a040f535248f47888981886738c1b883.json │ ├── log_c7333b05c97040c3aac64cdcc5220b33.json │ ├── log_d2ec3cd42d97418cb7a66dd9531e4497.json │ ├── log_d2f47bee538345aeacc625b50a38bfe4.json │ ├── state_a040f535248f47888981886738c1b883.json │ ├── state_c7333b05c97040c3aac64cdcc5220b33.json │ ├── state_d2ec3cd42d97418cb7a66dd9531e4497.json │ └── state_d2f47bee538345aeacc625b50a38bfe4.json ├── utils.py └── voice_bot.py ├── pychatgpt_ui ├── qa_docs ├── LLM.docx ├── logfile.log ├── qual_log.txt ├── qual_type_uk.txt └── summer_report_2022_ofqual.pdf ├── requirements.txt ├── run_app_linux.sh ├── run_app_mac.sh ├── run_app_windows.bat ├── setup.py └── setup.sh /README.rst: -------------------------------------------------------------------------------- 1 | pyChatGPT GUI: An open-source, low-code python wrapper providing intuitive web GUI for quick and easy usage of the Large Language Models such as `ChatGPT`, `AutoGPT`, `LLaMa`, `GPT-J`, and `GPT4All` for custom-data and pre-trained inferences. 2 | ========================================================================================================================== 3 | 4 | **pychatgpt_gui** 5 | 6 | pypi: https://pypi.org/project/pychatgpt_gui 7 | 8 | .. image:: images/main_ui.png 9 | 10 | **Check the Related Blog** - https://medium.com/mlearning-ai/an-open-source-low-code-python-wrapper-for-easy-usage-of-the-large-language-models-such-as-e833985c9062 11 | **Check the Related Blog** - https://ajay-arunachalam08.medium.com/a-simple-and-easy-web-interface-for-large-language-models-c32698caea2b 12 | 13 | About pyChatGPT GUI 14 | =================== 15 | 16 | `pyChatGPT_GUI` is a simple, ease-to-use Python GUI Wrapper built for unleashing the power of GPT. `pyChatGPT_GUI` provides an easy web interface to access the large language models (llm's) with several built-in application utilities for direct use. One can leverage ChatGPT, AutoGPT, LLaMa, GPT-J, and GPT4All models with pre-trained inferences and for your own data while democratizing the complex workflows. It provides a very `simple`, `easy-to-use` and `low-code` solution. 17 | 18 | `pyChatGPT_GUI` is concieved, designed and developed by `Ajay Arunachalam` - https://www.linkedin.com/in/ajay-ph-d-4744581a/ 19 | 20 | Please Note:- This work is still by large work under progress. 21 | 22 | 23 | The application provides the following services (not limited too):- 24 | =================================================================== 25 | 26 | - **Get `ChatGPT` inferences on your custom data** 27 | 28 | - **Sentiment Analyzer with `ChatGPT`** 29 | 30 | - **ChatGPT-based Voice Assistant Bot** 31 | 32 | - **Get `Auto-GPT` inferences for your requirement** 33 | 34 | - **Conversational Retrieval Question & Answer (QA) Chain Bot** 35 | 36 | - **Using open-source `GPT4` large language models based on `LLaMa` and `GPT-J`** 37 | 38 | - **Get `GPT4All` models inferences** 39 | 40 | - **Predict label of your inputted text from the predefined tags based on `ChatGPT`** 41 | 42 | 43 | Who can try pychatgpt_ui? 44 | ========================= 45 | `pyChatGPT_GUI` is an open-source package ideal for, but not limited too:- 46 | 47 | - Researchers for quick Proof-Of-Concept (POC) prototyping and testing. 48 | - Students and Teachers. 49 | - ML/AI Enthusiasts, and Learners 50 | - Citizen Data Scientists who prefer a low code solution for quick testing. 51 | - Experienced Data Scientists who want to try out different use-cases as per their business context for quick prototyping. 52 | - Data Science Professionals and Consultants involved in building Proof-Of-Concept (POC) projects. 53 | 54 | Usage Steps 55 | =========== 56 | Step 1) Create a virtual environment 57 | 58 | .. code:: bash 59 | 60 | py -3 -m venv 61 | cd /Scripts/activate 62 | 63 | **or** 64 | 65 | conda create -n python=3.x (or 3.x) 66 | source activate 67 | 68 | Step 2) Create the clone of the repository in your created virtual environment 69 | 70 | .. code:: bash 71 | 72 | $ git clone https://github.com/ajayarunachalam/pychatgpt_gui 73 | $ cd pychatgpt_gui 74 | $ sudo bash setup.sh 75 | 76 | **or** 77 | 78 | $ git clone https://github.com/ajayarunachalam/pychatgpt_gui 79 | $ cd pychatgpt_gui 80 | $ sudo bash setup.sh or python setup.py install 81 | 82 | **or** 83 | 84 | >>> git clone https://github.com/ajayarunachalam/pychatgpt_gui 85 | >>> cd pychatgpt_gui 86 | >>> pip install -r requirements.txt 87 | 88 | Step 3) Setup the environment configuration for using OpenAI through API. Enter your OpenAI api key in the "api_key.json" file. Note:- Please replace the null string with your key. Check this link on how to get an OpenAI API key - https://www.howtogeek.com/885918/how-to-get-an-openai-api-key/ 89 | 90 | Step 4) Download the GPT4All model from http://gpt4all.io/models/ggml-gpt4all-l13b-snoozy.bin and place it under the models/ folder. Alternatively, you can also use GPT4All-J model which can be downloaded from here - https://gpt4all.io/models/ggml-gpt4all-j-v1.3-groovy.bin and similarly place it under the models/ folder in the root directory. 91 | 92 | Step 5) Add your own set of documents to train the chatGPT AI bot under the docs/ folder. You could use multiple text files, Scanned files, PDF files, etc. Note:- If you have a large table in Excel, you can import it as a CSV or PDF file and then add it to the "docs" folder. 93 | 94 | Step 6) Add your own custom documents to train the Q&A chatbot with Conversational Retrieval Chain under the qa_docs/ folder. You can use any of the following file types: text files, pdf files, docx files, and log files 95 | 96 | Step 7) Launch the APP 97 | 98 | - **Linux users navigate within the cloned folder and type in "sudo bash run_app_linux.sh" in the terminal** 99 | 100 | - **Windows users within the cloned folder just simply double-click the "run_app_windows.bat" file. Note:- Open the file with an Editor and replace with your virtual directory path within the file** 101 | 102 | - **Mac users navigate within the cloned folder and type in "sh run_app_mac.sh" in the terminal** 103 | 104 | 105 | The APP will launch with a URL as seen below. 106 | 107 | .. image:: images/app_run.png 108 | 109 | 110 | APP MAIN WINDOW 111 | =============== 112 | .. image:: images/main_ui_.png 113 | 114 | 115 | License 116 | ======= 117 | Copyright 2022-2023 Ajay Arunachalam 118 | 119 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 120 | 121 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 122 | 123 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. © 2023 GitHub, Inc. 124 | 125 | References 126 | ========== 127 | I take this opportunity to acknowledge and thanks the `openai`, `huggingface`, `langchain`, `gpt4all`, `pygpt4all`, `LlamaIndex` and the other open-source communities for their incredible contributions. Also, my special mention to — `Ali Abid` and `Timothy Mugayi`. 128 | -------------------------------------------------------------------------------- /ai_settings.yaml: -------------------------------------------------------------------------------- 1 | ai_goals: 2 | - Find the top 2 papers on AI on arXiv. 3 | - Summarize their abstracts into a single line. 4 | ai_name: PaperReader-GPT 5 | ai_role: An AI that finds the latest AI papers on arXiV and gives one sentences summaries. 6 | -------------------------------------------------------------------------------- /api_key.json: -------------------------------------------------------------------------------- 1 | {"api_key": "null"} -------------------------------------------------------------------------------- /audio/user_input.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/audio/user_input.wav -------------------------------------------------------------------------------- /auto_gpt_workspace/pychatgpt_ui: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | echo "pychatgpt_ui package" -------------------------------------------------------------------------------- /blog_examples/pychatgpt_ui: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | echo "pychatgpt_ui package" -------------------------------------------------------------------------------- /data/bbc_data.csv: -------------------------------------------------------------------------------- 1 | passage_topic,class 2 | Beijingers fume over parking fees,business 3 | GM issues 2005 profits warning,business 4 | US economy still growing says Fed,business 5 | Wall Street cool to eBay's profit,business 6 | WorldCom trial starts in New York,business 7 | High fuel costs hit US airlines,business 8 | European losses hit GM's profits,business 9 | EU to probe Alitalia 'state aid',business 10 | IMF agrees fresh Turkey funding,business 11 | Saudi investor picks up the Savoy,business 12 | Tsunami slows Sri Lanka's growth,business 13 | China suspends 26 power projects,business 14 | Two Nigerian banks set to merge,business 15 | Virgin Blue shares plummet 20%,business 16 | Watchdog probes Vivendi bond sale,business 17 | Saudi NCCI's shares soar,business 18 | JP Morgan admits US slavery links,business 19 | Egypt and Israel seal trade deal,business 20 | Ford gains from finance not cars,business 21 | Wipro beats forecasts once again,business 22 | Christmas sales worst since 1981,business 23 | Businesses fail to plan for HIV,business 24 | Ailing EuroDisney vows turnaround,business 25 | UK young top Euro earnings league,business 26 | Swiss cement firm in buying spree,business 27 | India's Reliance family feud heats up,business 28 | World leaders gather to face uncertainty,business 29 | US budget deficit to reach $368bn,business 30 | Criminal probe on Citigroup deals,business 31 | Brazil jobless rate hits new low,business 32 | Indonesia 'declines debt freeze',business 33 | Parmalat bank barred from suing,business 34 | China continues rapid growth,business 35 | SEC to rethink post-Enron rules,business 36 | BBC poll indicates economic gloom,business 37 | Europe asks Asia for euro help,business 38 | FBI agent colludes with analyst,business 39 | Millions go missing at China bank,business 40 | China Aviation seeks rescue deal,business 41 | Low-cost airlines hit Eurotunnel,business 42 | Water firm Suez in Argentina row,business 43 | Algeria hit by further gas riots,business 44 | India's Maruti sees profits jump,business 45 | Aids and climate top Davos agenda,business 46 | China now top trader with Japan,business 47 | Trial begins of Spain's top banker,business 48 | UK economy ends year with spurt,business 49 | HealthSouth ex-boss goes on trial,business 50 | Euro firms miss out on optimism,business 51 | Lacroix label bought by US firm,business 52 | Career honour for actor DiCaprio,entertainment 53 | Howl helps boost Japan's cinemas,entertainment 54 | Keanu Reeves given Hollywood star,entertainment 55 | De Niro completes box office coup,entertainment 56 | Day-Lewis set for Berlin honour,entertainment 57 | US composer recreates Bach score,entertainment 58 | Applegate's Charity show closes,entertainment 59 | Ray Charles studio becomes museum,entertainment 60 | Britney attacks 'false tabloids',entertainment 61 | Abba queen enters music rich list,entertainment 62 | Casino Royale is next Bond movie,entertainment 63 | Berlin celebrates European cinema,entertainment 64 | India to deport Bollywood actress,entertainment 65 | Ray DVD beats box office takings,entertainment 66 | Women in film 'are earning less',entertainment 67 | Vera Drake's Bafta triumph hope,entertainment 68 | Roundabout continues nostalgia trip,entertainment 69 | Stars shine on Bafta red carpet,entertainment 70 | Bafta to hand out movie honours,entertainment 71 | Stars pay tribute to actor Davis,entertainment 72 | Aviator and Vera take Bafta glory,entertainment 73 | Film star Fox behind theatre bid,entertainment 74 | Shark Tale DVD is US best-seller,entertainment 75 | Lopez misses UK charity premiere,entertainment 76 | Super Size Me wins writers' award,entertainment 77 | Original Exorcist to be screened,entertainment 78 | Oscar nominees lack pulling power,entertainment 79 | Hitch holds on to US box office,entertainment 80 | Tarantino to direct CSI episode,entertainment 81 | Bollywood DVD fraudster is jailed,entertainment 82 | US 'afflicted' with awards fatigue,entertainment 83 | Critics back Aviator for Oscars,entertainment 84 | Briton wins short film Oscar,entertainment 85 | Sideways dominates Spirit awards,entertainment 86 | Arnold congratulated on Oscar win,entertainment 87 | Eastwood's Baby scoops top Oscars,entertainment 88 | British stars denied major Oscars,entertainment 89 | Lee to create new film superhero,entertainment 90 | Jackson film 'absolute disaster',entertainment 91 | France set for new Da Vinci novel,entertainment 92 | UK Directors Guild nominees named,entertainment 93 | Halloween writer Debra Hill dies,entertainment 94 | Tarantino 'to make Friday sequel',entertainment 95 | Boogeyman takes box office lead,entertainment 96 | Lost Doors frontman movie found,entertainment 97 | Last Star Wars 'not for children',entertainment 98 | French honour for director Parker,entertainment 99 | Robots march to US cinema summit,entertainment 100 | Hobbit picture 'four years away',entertainment 101 | Buffy creator joins Wonder Woman,entertainment 102 | "Act on detention ruling, UK urged",politics 103 | BAA support ahead of court battle,politics 104 | UK 'discriminated against Roma',politics 105 | Howard pitches for UK ethnic vote,politics 106 | Observers to monitor UK election,politics 107 | UK rebate 'unjustified' - Chirac,politics 108 | "UK needs tax cuts, Tories insist",politics 109 | Brown targets OAPs and homebuyers,politics 110 | MPs demand 'Budget leak' answers,politics 111 | US casino 'tricks' face ban in UK,politics 112 | Blair defends terror law changes,politics 113 | Election 'could be terror target',politics 114 | Minimum wage increased to £5.05,politics 115 | Hunt ban support is 'in decline',politics 116 | At a glance: Tory health checks,politics 117 | Labour accused of 'EU propaganda',politics 118 | Terror suspects face house arrest,politics 119 | UK pledges £1bn to vaccine effort,politics 120 | Straw backs ending China embargo,politics 121 | Pre-poll clash on tax and spend,politics 122 | Plan to give elderly care control,politics 123 | EU rules 'won't stop UK spending',politics 124 | Child access law shake-up planned,politics 125 | 'EU referendum could cost £80m',politics 126 | 'No UK apology' for colonial past,politics 127 | Parliament's record of scandal,politics 128 | Economy focus for election battle,politics 129 | Blair ready to call election,politics 130 | Labour faces 'cold calls' inquiry,politics 131 | Blunkett hints at election call,politics 132 | Lib Dems predict 'best ever poll',politics 133 | Tories reject rethink on axed MP,politics 134 | Ex-PM Lord Callaghan dies aged 92,politics 135 | Blair prepares to name poll date,politics 136 | Brown's poll campaign move denied,politics 137 | Voters 'don't trust politicians',politics 138 | Tory candidate quits over remark,politics 139 | Abortion not a poll issue - Blair,politics 140 | Profile: Gordon Brown,politics 141 | Boateng to step down at election,politics 142 | Howard hits back at mongrel jibe,politics 143 | Tories urge 'change at the top',politics 144 | Sayeed to stand down as Tory MP,politics 145 | Howard's unfinished business,politics 146 | 'Last chance' warning for voters,politics 147 | Sainsbury's Labour election gift,politics 148 | Blair 'up for it' ahead of poll,politics 149 | Labour MP praises Tory campaign,politics 150 | Top Tories on Lib Dem 'hit list',politics 151 | Lib Dems unveil election slogan,politics 152 | Navratilova hits out at critics,sport 153 | Prodigy Monfils blows away Gaudio,sport 154 | Connors boost for British tennis,sport 155 | Henin-Hardenne beaten on comeback,sport 156 | Moya clinches Cup for Spain,sport 157 | Capriati to miss Melbourne,sport 158 | Classy Henman makes winning start,sport 159 | Moya emotional after Davis Cup win,sport 160 | Moya emotional at Davis Cup win,sport 161 | Capriati out of Australian Open,sport 162 | Bryan twins keep US hopes alive,sport 163 | Faultless Federer has no equal,sport 164 | Mauresmo opens with victory in LA,sport 165 | Agassi fear for Melbourne,sport 166 | Henman to face Saulnier test,sport 167 | Moya suffers shock loss,sport 168 | Clijsters hope on Aussie Open,sport 169 | Clijsters could play Aussie Open,sport 170 | Edgy Agassi struggles past Dent,sport 171 | Roddick splits from coach Gilbert,sport 172 | Roddick in talks over new coach,sport 173 | Hewitt survives Nalbandian epic,sport 174 | Sydney return for Henin-Hardenne,sport 175 | Koubek suspended after drugs test,sport 176 | Hewitt fights back to reach final,sport 177 | Officials respond in court row,sport 178 | Williams battles to Aussie title,sport 179 | Safin cool on Wimbledon,sport 180 | Safin plays down Wimbledon hopes,sport 181 | Nadal puts Spain 2-0 up,sport 182 | Henman & Murray claim LTA awards,sport 183 | Connors' rallying cry for British tennis,sport 184 | Roche 'turns down Federer offer',sport 185 | Federer joins all-time greats,sport 186 | Philippoussis doubt over Open bid,sport 187 | Slovakia reach Hopman Cup final,sport 188 | Dent continues Adelaide progress,sport 189 | Moya sidesteps Davis Cup in 2005,sport 190 | Henman decides to quit Davis Cup,sport 191 | Ivanovic seals Canberra victory,sport 192 | Minister digs in over doping row,sport 193 | Safin relieved at Aussie recovery,sport 194 | Veteran Martinez wins Thai title,sport 195 | Soderling wins tense Milan final,sport 196 | Rusedski forced out in Marseille,sport 197 | Big guns ease through in San Jose,sport 198 | Almagro continues Spanish surge,sport 199 | Melzer shocks Agassi in San Jose,sport 200 | Mirza makes Indian tennis history,sport 201 | Roddick to face Saulnier in final,sport 202 | Slow start to speedy net services,tech 203 | Anti-tremor mouse stops PC shakes,tech 204 | The pirates with no profit motive,tech 205 | Apple makes blogs reveal sources,tech 206 | Hitachi unveils 'fastest robot',tech 207 | Have hackers recruited your PC?,tech 208 | What price for 'trusted PC security'?,tech 209 | Gizmondo gadget hits the shelves,tech 210 | Confusion over high-definition TV,tech 211 | Digital UK driven by net and TV,tech 212 | Bad e-mail habits sustains spam,tech 213 | Sony PSP handheld console hits US,tech 214 | 'Podcasters' look to net money,tech 215 | Local net TV takes off in Austria,tech 216 | Rolling out next generation's net,tech 217 | Long life promised for laptop PCs,tech 218 | Net fingerprints combat attacks,tech 219 | Microsoft plans 'safer ID' system,tech 220 | Court mulls file-sharing future,tech 221 | France starts digital terrestrial,tech 222 | Text message record smashed again,tech 223 | Software watching while you work,tech 224 | Commodore finds new lease of life,tech 225 | Cabs collect mountain of mobiles,tech 226 | T-Mobile bets on 'pocket office',tech 227 | California sets fines for spyware,tech 228 | Mobile TV tipped as one to watch,tech 229 | Apple laptop is 'greatest gadget',tech 230 | Sun offers processing by the hour,tech 231 | Kenyan school turns to handhelds,tech 232 | Tough rules for ringtone sellers,tech 233 | Mobile music challenges 'iPod age',tech 234 | China 'ripe' for media explosion,tech 235 | Beckham virus spotted on the net,tech 236 | Video phones act as dating tools,tech 237 | Progress on new internet domains,tech 238 | Camera phones are 'must-haves',tech 239 | Mobile multimedia slow to catch on,tech 240 | Anti-spam laws bite spammer hard,tech 241 | Peer-to-peer nets 'here to stay',tech 242 | Broadband fuels online expression,tech 243 | Savvy searchers fail to spot ads,tech 244 | TV's future down the phone line,tech 245 | Cebit fever takes over Hanover,tech 246 | New consoles promise big problems,tech 247 | BT program to beat dialler scams,tech 248 | Spam e-mails tempt net shoppers,tech 249 | Be careful how you code,tech 250 | US cyber security chief resigns,tech 251 | Losing yourself in online gaming,tech 252 | Labour plans maternity pay rise,politics 253 | Watchdog probes e-mail deletions,politics 254 | Hewitt decries 'career sexism',politics 255 | Labour chooses Manchester,politics 256 | Brown ally rejects Budget spree,politics 257 | 'Errors' doomed first Dome sale,politics 258 | Fox attacks Blair's Tory 'lies',politics 259 | Women MPs reveal sexist taunts,politics 260 | Campbell: E-mail row 'silly fuss',politics 261 | Crucial decision on super-casinos,politics 262 | Mrs Howard gets key election role,politics 263 | PM apology over jailings,politics 264 | Howard rebuts asylum criticisms,politics 265 | Blair rejects Tory terror offer,politics 266 | Talks held on Gibraltar's future,politics 267 | Crisis 'ahead in social sciences',politics 268 | Tsunami debt deal to be announced,politics 269 | Straw to attend Auschwitz service,politics 270 | Drink remark 'acts as diversion',politics 271 | Concerns at school diploma plan,politics 272 | Blair backs 'pre-election budget',politics 273 | "Nat Insurance to rise, say Tories",politics 274 | E-University 'disgraceful waste',politics 275 | Brown visits slum on Africa trip,politics 276 | UK 'needs true immigration data',politics 277 | Blair sets date for Africa report,politics 278 | Butler launches attack on Blair,politics 279 | Lib Dems demand new inquiry,politics 280 | UK set to cut back on embassies,politics 281 | Labour targets 'hardcore truants',politics 282 | Blunkett sorry over murder plan,politics 283 | Hunt demo at Labour meeting,politics 284 | Protesters plan airport challenge,politics 285 | Tories attack burglar 'U-turns',politics 286 | Leaders meet over Turkish EU bid,politics 287 | Choose hope over fear - Kennedy,politics 288 | Profile: David Miliband,politics 289 | Borders rail link campaign rally,politics 290 | 'Hitler' row over Welsh arts cash,politics 291 | Lords wrong on detainees - Straw,politics 292 | Profile: David Blunkett,politics 293 | Strike threat over pension plans,politics 294 | Parties warned over 'grey vote',politics 295 | MPs quiz aides over royal income,politics 296 | Tory leader 'cleared' over work,politics 297 | Blair and Blunkett Sheffield trip,politics 298 | Student 'fee factor' played down,politics 299 | Anglers 'could face prosecution',politics 300 | Clarke to press on with ID cards,politics 301 | Scots smoking ban details set out,politics 302 | MPs criticise child access system,politics 303 | Nuclear strike 'key terror risk',politics 304 | Russian ex-spy on hunger strike,politics 305 | Lib Dems 'to target stamp duty',politics 306 | Kelly trails new discipline power,politics 307 | Citizenship event for 18s touted,politics 308 | England children's tsar appointed,politics 309 | EU China arms ban 'to be lifted',politics 310 | 'Debate needed' on donations cap,politics 311 | Cardinal criticises Iraq war cost,politics 312 | Assembly ballot papers 'missing',politics 313 | Muslims discuss election concerns,politics 314 | Drive to 'save' festive holidays,politics 315 | Blair hails Turkey-EU talks deal,politics 316 | Guantanamo pair's passport ban,politics 317 | Commons hunt protest charges,politics 318 | Child access laws shake-up,politics 319 | MPs to debate 'euthanasia laws',politics 320 | Talks aim to avert pension strike,politics 321 | Opposition grows to house arrests,politics 322 | Visa decision 'every 11 minutes',politics 323 | 'No more concessions' on terror,politics 324 | No to Royal succession shake-up,politics 325 | BNP leader Nick Griffin arrested,politics 326 | Boris opposes mayor apology,politics 327 | Report attacks defence spending,politics 328 | Brown names 16 March for Budget,politics 329 | Asylum children to face returns,politics 330 | 'Fido' to be taken off vote lists,politics 331 | 'More to do' on adult literacy,politics 332 | Tory backing for ID cards,politics 333 | Labour's 'EU propaganda',politics 334 | Hague 'given up' his PM ambition,politics 335 | Job cuts 'false economy' - TUC,politics 336 | UK's 'useless' quangos under fire,politics 337 | Howard backs stem cell research,politics 338 | Howard unveils Tory asylum plans,politics 339 | Campaign 'cold calls' questioned,politics 340 | Tory leader quits legal position,politics 341 | MSPs hear renewed climate warning,politics 342 | Vouchers 'to cut winter deaths',politics 343 | New 'yob' targets to be unveiled,politics 344 | Kennedy calls for Iraq exit plans,politics 345 | McConnell in 'drunk' remark row,politics 346 | Brown hits back in Blair rift row,politics 347 | Tories 'would cut number of MPs',politics 348 | UK plan to deport terror suspects,politics 349 | Ministers deny care sums 'wrong',politics 350 | Blair stresses prosperity goals,politics 351 | Guantanamo man 'suing government',politics 352 | Council tax rise 'reasonable',politics 353 | Blunkett row should end - Blair,politics 354 | Minimum rate for foster parents,politics 355 | Royal couple watch nation's mood,politics 356 | Muslim police stops 'more likely',politics 357 | Howard attacks cost of asylum,politics 358 | Brown outlines third term vision,politics 359 | 'Super union' merger plan touted,politics 360 | UK firms 'embracing e-commerce',politics 361 | UK heading wrong way - Howard,politics 362 | Kilroy launches 'Veritas' party,politics 363 | Blair 'damaged' by Blunkett row,politics 364 | MP's shock at long lost daughter,politics 365 | Green fear for transport ballot,politics 366 | New drink limit 'would cut toll',politics 367 | "CSA 'could close', says minister",politics 368 | Boothroyd calls for Lords speaker,politics 369 | Bid to cut court witness stress,politics 370 | "Lord Scarman, 93, dies peacefully",politics 371 | Tory leader urges Harry apology,politics 372 | NHS waiting time target is cut,politics 373 | Tories plan migrant health checks,politics 374 | MPs issued with Blackberry threat,politics 375 | Wales 'must learn health lessons',politics 376 | UKIP candidate suspended,politics 377 | End Bush 'denial' Blair tells EU,politics 378 | Brown to outline presidency goals,politics 379 | Brown shrugs off economy fears,politics 380 | UK troops on Ivory Coast standby,politics 381 | Blair told to double overseas aid,politics 382 | Peace demo appeal rejected,politics 383 | Retirement age could be scrapped,politics 384 | Jowell rejects 'Las Vegas' jibe,politics 385 | Ban on hunting comes into force,politics 386 | Blair says UK tsunami aid to soar,politics 387 | Straw attacked on China arms,politics 388 | Defiant hunts put ban to the test,politics 389 | EU fraud clampdown urged,politics 390 | Straw praises Kashmir moves,politics 391 | UK helps raped Rwandan women,politics 392 | Howard denies split over ID cards,politics 393 | EU referendum question unveiled,politics 394 | Malik rejects all-black MP lists,politics 395 | MP attacked by muggers in Kenya,politics 396 | Candidate resigns over BNP link,politics 397 | 'Nuclear dumpsite' plan attacked,politics 398 | Labour accused of broken pledge,politics 399 | Labour trio 'had vote-rig factory',politics 400 | Blair returns from peace mission,politics 401 | Galloway plea for hostage release,politics 402 | Guantanamo four questioned,politics 403 | Minister defends hunting ban law,politics 404 | Clarke to unveil immigration plan,politics 405 | Mayor will not retract Nazi jibe,politics 406 | Pakistani women 'must not hide',politics 407 | Visa row mandarin made Sir John,politics 408 | Kilroy-Silk attacked with slurry,politics 409 | "Petrol duties frozen, Brown says",politics 410 | Howard unveils election platform,politics 411 | Lawyer attacks anti-terror laws,politics 412 | Turkey deal 'to help world peace',politics 413 | "Protect whistleblowers, TUC says",politics 414 | Kinnock to urge reform in Lords,politics 415 | McConnell details Scots wave toll,politics 416 | Police urge pub closure power,politics 417 | Blunkett tells of love and pain,politics 418 | Housing plans criticised by MPs,politics 419 | MPs' murder sentence concern,politics 420 | 'No-one can define new hunt ban',politics 421 | Hospital suspends 'no Welsh' plan,politics 422 | Tories pledge free sports lessons,politics 423 | Faith schools citizenship warning,politics 424 | Ministers lose slopping out case,politics 425 | Escaped prisoner report ordered,politics 426 | Chancellor rallies Labour voters,politics 427 | Councils 'must find Gypsy sites',politics 428 | Plaid MP's cottage arson claim,politics 429 | Hatfield executives go on trial,politics 430 | Final hunts held as ban looms,politics 431 | Falconer rebuts 'charade' claims,politics 432 | "School sport 'is back', says PM",politics 433 | Anti-terror plan faces first test,politics 434 | Former NI minister Scott dies,politics 435 | Blair rejects Iraq advice calls,politics 436 | Police probe BNP mosque leaflet,politics 437 | Blair says mayor should apologise,politics 438 | Jowell confirms casino climbdown,politics 439 | Security papers 'found in street',politics 440 | Blair congratulates Bush on win,politics 441 | Howard 'truanted to play snooker',politics 442 | Short attacks US over tsunami aid,politics 443 | Guantanamo four free in weeks,politics 444 | Tories attack EU asylum moves,politics 445 | Cherie accused of attacking Bush,politics 446 | Tsunami 'won't divert Africa aid',politics 447 | Mandelson warning to BBC,politics 448 | Blair 'pressing US on climate',politics 449 | Police chief backs drinking move,politics 450 | Game warnings 'must be clearer',politics 451 | Mallon wades into NE vote battle,politics 452 | Howard rejects BNP's claim,politics 453 | Tories opposing 24-hour drinking,politics 454 | New foot and mouth action urged,politics 455 | Correction agency plans dropped,politics 456 | Tutu's Guantanamo release call,politics 457 | Blair's hope for Blunkett return,politics 458 | February poll claim 'speculation',politics 459 | Gurkhas to help tsunami victims,politics 460 | Abbas 'will not tolerate' attacks,politics 461 | Thousands join strike in Wales,politics 462 | Top judge clashes with ministers,politics 463 | Tory expert denies defeatism,politics 464 | Lib Dems target the student vote,politics 465 | Custody death rate 'shocks' MPs,politics 466 | New rules tackle 'sham weddings',politics 467 | Ministers 'naive' over phone-taps,politics 468 | Schools to take part in mock poll,politics 469 | Blair dismisses quit claim report,politics 470 | Jamieson issues warning to bigots,politics 471 | Clarke plans migrant point scheme,politics 472 | Clarke defends terror detentions,politics 473 | Voters 'reject EU by two to one',politics 474 | Kennedy questions trust of Blair,politics 475 | Terror detainees win Lords appeal,politics 476 | Blair to face MPs amid feud talk,politics 477 | Tories unveil quango blitz plans,politics 478 | Clarke faces ID cards rebellion,politics 479 | Labour pig poster 'anti-Semitic',politics 480 | Iraqis win death test case probe,politics 481 | Burglar defence guidelines issued,politics 482 | Woolf murder sentence rethink,politics 483 | Probe launched on Ken Nazi jibe,politics 484 | 'Few ready' for information act,politics 485 | Blunkett unveils policing plans,politics 486 | Lib Dems' new election PR chief,politics 487 | Jack Cunningham to stand down,politics 488 | Kilroy unveils immigration policy,politics 489 | Regiments' group in poll move,politics 490 | Row over 'police' power for CSOs,politics 491 | Sport betting rules in spotlight,politics 492 | Councils prepare to set tax rises,politics 493 | Whitehall shredding increasing - Tories,politics 494 | MPs assess Scots fishing industry,politics 495 | Research fears over Kelly's views,politics 496 | Army chiefs in regiments decision,politics 497 | Student 'inequality' exposed,politics 498 | Kennedy to make temple address,politics 499 | David Blunkett in quotes,politics 500 | "No election TV debate, says Blair",politics 501 | What the election should really be about?,politics 502 | Brown and Blair face new rift claims,politics 503 | Blair 'said he would stand down',politics 504 | Blair dismisses quit claim report,politics 505 | Could rivalry overshadow election?,politics 506 | Brown in appeal for Labour unity,politics 507 | Blair pledges unity to Labour MPs,politics 508 | Blair and Brown criticised by MPs,politics 509 | Labour MPs' fears over squabbling,politics 510 | 'Poll Idols' face first hurdles,politics 511 | Labour seeks to quell feud talk,politics 512 | Labour's election love-in,politics 513 | Howard taunts Blair over splits,politics 514 | How political squabbles snowball,politics 515 | Blair looks to election campaign,politics 516 | Tories unveil quango blitz plans,politics 517 | Peers debate Crown succession law,politics 518 | UKIP's secret weapon?,politics 519 | More reforms ahead says Milburn,politics 520 | Teens 'know little' of politics,politics 521 | Defection timed to hit tax pledge,politics 522 | Tory leader unveils spending plan,politics 523 | Kennedy looks to election gains,politics 524 | 'Best person' for top legal job,politics 525 | The memory driving Brown's mission,politics 526 | Howard dismisses Tory tax fears,politics 527 | Donor attacks Blair-Brown 'feud',politics 528 | Howard and Blair tax pledge clash,politics 529 | What really divides the parties,politics 530 | Amnesty chief laments war failure,politics 531 | Blair sees greater Bush consensus,politics 532 | Kilroy-Silk quits 'shameful' UKIP,politics 533 | Blair blasts Tory spending plans,politics 534 | Lib Dems' 'bold' election policy,politics 535 | Kennedy's cautious optimism,politics 536 | Hague 'given up' his PM ambition,politics 537 | UKIP candidate suspended in probe,politics 538 | Boothroyd calls for Lords speaker,politics 539 | New UKIP defection to 'Veritas',politics 540 | Baron Kinnock makes Lords debut,politics 541 | Terror powers expose 'tyranny',politics 542 | 'Super union' merger plan touted,politics 543 | UKIP MEP attacked German 'empire',politics 544 | Kilroy launches 'Veritas' party,politics 545 | Civil servants in strike ballot,politics 546 | Blair Labour's longest-serving PM,politics 547 | Tories leave door open for Archer,politics 548 | Mandelson warns BBC on Campbell,politics 549 | 'Debate needed' on donations cap,politics 550 | Conservative backing for ID cards,politics 551 | Howard denies split over ID cards,politics 552 | Taxes must be trusted - Kennedy,politics 553 | Galloway targets 'New Labour' MP,politics 554 | Election deal faltered over Heath role,politics 555 | UKIP outspent Labour on EU poll,politics 556 | Labour battle plan 'hides Blair',politics 557 | Campbell returns to election team,politics 558 | Conservative MP defects to Labour,politics 559 | Tory 'stalking horse' Meyer dies,politics 560 | UK youth 'interested' in politics,politics 561 | MPs issued with Blackberry threat,politics 562 | Talks aim to avert pension strike,politics 563 | Stalemate in pension strike talks,politics 564 | Parties warned over 'grey vote',politics 565 | Blair to face trust issue head on,politics 566 | CSA chief who 'quit' still in job,politics 567 | Blair moves to woo Jewish voters,politics 568 | Parties' plans for council tax,politics 569 | Labour in constituency race row,politics 570 | MPs tout Lords replacement plan,politics 571 | Hague's six-figure earnings shown,politics 572 | Schools to take part in mock poll,politics 573 | Parties build up poll war chests,politics 574 | Kennedy predicts bigger turnout,politics 575 | Iraq advice claim sparks new row,politics 576 | UKIP could sue Veritas defectors,politics 577 | Prime minister's questions,politics 578 | Goldsmith denies war advice claim,politics 579 | Goldsmith: 'I was not leant on',politics 580 | Tory expert denies defeat warning,politics 581 | Manchester wins Labour conference,politics 582 | Labour attacked on Howard poster,politics 583 | Milburn defends poster campaign,politics 584 | Kilroy names election seat target,politics 585 | Immigration to be election issue,politics 586 | Kennedy begins pre-election tour,politics 587 | Labour's core support takes stock,politics 588 | Campaign 'cold calls' questioned,politics 589 | Lib Dems highlight problem debt,politics 590 | Lib Dems target first-time buyers,politics 591 | Lib Dems unveil women's manifesto,politics 592 | Kennedy questions trust of Blair,politics 593 | Brown outlines third term vision,politics 594 | Labour's Cunningham to stand down,politics 595 | Will Tory tax cuts lift spirits?,politics 596 | Teenagers to be allowed to be MPs,politics 597 | Labour's four little words,politics 598 | Tories outlining policing plans,politics 599 | TV debate urged for party chiefs,politics 600 | Chancellor rallies Labour voters,politics 601 | Brown 'proud of economy record',politics 602 | Fox attacks Blair's Tory 'lies',politics 603 | Blair joins school sailing trip,politics 604 | "Analysis: No pain, no gain?",politics 605 | Brown names 16 March for Budget,politics 606 | Lib Dems stress Budget trust gap,politics 607 | Blair backs 'pre-election budget',politics 608 | Cabinet anger at Brown cash raid,politics 609 | 'UK will stand firm on EU rebate',politics 610 | Brown ally rejects Budget spree,politics 611 | Will the Budget bring out smiling voters?,politics 612 | Budget to set scene for election,politics 613 | Brown comes out shooting,politics 614 | Kennedy criticises 'unfair' taxes,politics 615 | Howard attacks 'pay later' Budget,politics 616 | Whitehall cuts 'ahead of target',politics 617 | Brown calls for £5.5bn Aids fund,politics 618 | "UK heading wrong way, says Howard",politics 619 | Gallery unveils interactive tree,entertainment 620 | Jarre joins fairytale celebration,entertainment 621 | Musical treatment for Capra film,entertainment 622 | Richard and Judy choose top books,entertainment 623 | Poppins musical gets flying start,entertainment 624 | Bennett play takes theatre prizes,entertainment 625 | Levy tipped for Whitbread prize,entertainment 626 | West End to honour finest shows,entertainment 627 | Da Vinci Code is 'lousy history',entertainment 628 | Uganda bans Vagina Monologues,entertainment 629 | Artists' secret postcards on sale,entertainment 630 | Neeson in bid to revive theatre,entertainment 631 | Levy takes Whitbread novel prize,entertainment 632 | Adventure tale tops awards,entertainment 633 | Mutant book wins Guardian prize,entertainment 634 | Arthur Hailey: King of the bestsellers,entertainment 635 | Spark heads world Booker list,entertainment 636 | Versace art portfolio up for sale,entertainment 637 | Slater to star in Broadway play,entertainment 638 | Public show for Reynolds portrait,entertainment 639 | Obituary: Dame Alicia Markova,entertainment 640 | Fears raised over ballet future,entertainment 641 | Famed music director Viotti dies,entertainment 642 | Paraguay novel wins US book prize,entertainment 643 | New Harry Potter tops book chart,entertainment 644 | UK's National Gallery in the pink,entertainment 645 | Lit Idol begins search for author,entertainment 646 | Potter director signs Warner deal,entertainment 647 | Baghdad Blogger on big screen,entertainment 648 | US critics laud comedy Sideways,entertainment 649 | Dirty Den's demise seen by 14m,entertainment 650 | Redford's vision of Sundance,entertainment 651 | DVD review: Harry Potter and the Prisoner of Azkaban,entertainment 652 | Vera Drake scoops film award,entertainment 653 | Hundreds vie for best film Oscar,entertainment 654 | Hanks greeted at wintry premiere,entertainment 655 | Film row over Pirates 'cannibals',entertainment 656 | Stars gear up for Bafta ceremony,entertainment 657 | Aviator 'creator' in Oscars snub,entertainment 658 | Wine comedy up for six film gongs,entertainment 659 | No ads for Passion Oscar campaign,entertainment 660 | Berlin honours S Korean director,entertainment 661 | Stars pay tribute to actor Davis,entertainment 662 | US actor Ossie Davis found dead,entertainment 663 | Jugnot 'tops French actor league',entertainment 664 | Howl helps boost Japan's cinemas,entertainment 665 | Berlin applauds Hotel Rwanda,entertainment 666 | 'Landmark movies' of 2004 hailed,entertainment 667 | De Niro film leads US box office,entertainment 668 | Willis sues over movie 'injury',entertainment 669 | Foxx and Swank win US awards,entertainment 670 | Spike Lee backs student directors,entertainment 671 | Horror film heads US box office,entertainment 672 | Mumbai bombs movie postponed,entertainment 673 | DVD review: I,entertainment 674 | Brando 'rejected Godfather role',entertainment 675 | Dutch watch Van Gogh's last film,entertainment 676 | Berlin hails European cinema,entertainment 677 | Sky takes over Oscar night mantle,entertainment 678 | Snicket tops US box office chart,entertainment 679 | Director Nair's Vanity project,entertainment 680 | Spirit awards hail Sideways,entertainment 681 | Tautou film tops Cesar prize nods,entertainment 682 | Hollywood ready for Oscars night,entertainment 683 | Animation charms Japan box office,entertainment 684 | US box office set for record high,entertainment 685 | Low-budget film wins Cesar,entertainment 686 | Tautou 'to star in Da Vinci film',entertainment 687 | Foxx and Swank take actors awards,entertainment 688 | Children vote Shrek 2 best film,entertainment 689 | UK debut for Kevin Spacey movie,entertainment 690 | Box office blow for Alexander,entertainment 691 | Ray DVD beats box office takings,entertainment 692 | Ocean's Twelve raids box office,entertainment 693 | Indie film nominations announced,entertainment 694 | Fockers fuel festive film chart,entertainment 695 | DVD review: Spider-Man 2,entertainment 696 | Baby becomes new Oscar favourite,entertainment 697 | Russian film wins BBC world prize,entertainment 698 | US TV cuts nudity from BBC film,entertainment 699 | Oscars race enters final furlong,entertainment 700 | Aviator 'creator' in Oscars snub,entertainment 701 | Cage film's third week at US top,entertainment 702 | Oscar nominees gear up for lunch,entertainment 703 | Church anger over Bollywood film,entertainment 704 | Bookmakers back Aviator for Oscar,entertainment 705 | Global release for Japan hit film,entertainment 706 | Ocean's Twelve raids box office,entertainment 707 | Oscar nominee Dan O'Herlihy dies,entertainment 708 | Berlin cheers for anti-Nazi film,entertainment 709 | Wine comedy wins critics' award,entertainment 710 | Actor Foxx sees Globe nominations,entertainment 711 | Godzilla gets Hollywood fame star,entertainment 712 | God cut from Dark Materials film,entertainment 713 | Aviator wins top Globes accolades,entertainment 714 | Singer's film to show at festival,entertainment 715 | Surprise win for anti-Bush film,entertainment 716 | Da Vinci film to star Tom Hanks,entertainment 717 | Controversial film tops festival,entertainment 718 | Fockers retain film chart crown,entertainment 719 | Sundance to honour foreign films,entertainment 720 | Day-Lewis set for Berlin honour,entertainment 721 | Downloads enter US singles chart,entertainment 722 | Glasgow hosts tsunami benefit gig,entertainment 723 | Pop band Busted to 'take a break',entertainment 724 | Streets have 'album of the year',entertainment 725 | Manics in charge of BBC 6 Music,entertainment 726 | Media seek Jackson 'juror' notes,entertainment 727 | Band Aid retains number one spot,entertainment 728 | Rap boss arrested over drug find,entertainment 729 | Elton plays Paris charity concert,entertainment 730 | Elvis set to top UK singles chart,entertainment 731 | Wal-Mart is sued over rude lyrics,entertainment 732 | Pete Doherty misses bail deadline,entertainment 733 | Rapper Snoop Dogg sued for 'rape',entertainment 734 | Legendary music studio to close,entertainment 735 | Rapper Jay-Z becomes label boss,entertainment 736 | REM concerts blighted by illness,entertainment 737 | Ring of Fire hit co-writer dies,entertainment 738 | 'My memories of Marley...',entertainment 739 | Belle named 'best Scottish band',entertainment 740 | Dance music not dead says Fatboy,entertainment 741 | Label withdraws McFadden's video,entertainment 742 | Byrds producer Melcher dies at 62,entertainment 743 | Snow Patrol feted at Irish awards,entertainment 744 | Doves soar to UK album summit,entertainment 745 | Downloads enter US singles chart,entertainment 746 | Top gig award for Scissor Sisters,entertainment 747 | Brits return Keane to number one,entertainment 748 | Charity single for quake relief,entertainment 749 | Franz man seeks government help,entertainment 750 | Hard act to follow for OutKast,entertainment 751 | Sir Paul rocks Super Bowl crowds,entertainment 752 | Rock group Korn's guitarist quits,entertainment 753 | Vibe awards back despite violence,entertainment 754 | 'Christmas song formula' unveiled,entertainment 755 | Glastonbury fans to get ID cards,entertainment 756 | Queen recruit singer for new tour,entertainment 757 | U2 to play at Grammy awards show,entertainment 758 | Rock band U2 break ticket record,entertainment 759 | Police praise 'courageous' Ozzy,entertainment 760 | New York rockers top talent poll,entertainment 761 | Blair buys copies of new Band Aid,entertainment 762 | Eminem beats Elvis to number one,entertainment 763 | Sir Paul rocks Super Bowl crowds,entertainment 764 | J-Lo and husband plan debut duet,entertainment 765 | Beastie Boys win sampling battle,entertainment 766 | Pupils to get anti-piracy lessons,entertainment 767 | Spector facing more legal action,entertainment 768 | Usher leads Billboard nominations,entertainment 769 | Eminem secret gig venue revealed,entertainment 770 | Beatles suits sell for $110,entertainment 771 | OutKast win at MTV Europe Awards,entertainment 772 | Oasis star fined for German brawl,entertainment 773 | Disputed Nirvana box set on sale,entertainment 774 | Usher leads Soul Train shortlist,entertainment 775 | US charity anthem is re-released,entertainment 776 | Queen recruit singer for new tour,entertainment 777 | Band Aid 20 single storms to No 1,entertainment 778 | iTunes now selling Band Aid song,entertainment 779 | Court halts Mark Morrison album,entertainment 780 | Prince crowned 'top music earner',entertainment 781 | Early Elvis recordings go on sale,entertainment 782 | Parker's saxophone heads auction,entertainment 783 | Comic Morris returns with sitcom,entertainment 784 | TV station refuses adoption show,entertainment 785 | A-listers flock to Gervais sitcom,entertainment 786 | Campaigners attack MTV 'sleaze',entertainment 787 | US actor 'found with gun residue',entertainment 788 | EastEnders 'is set for US remake',entertainment 789 | US 'to raise TV indecency fines',entertainment 790 | Eurovision 'greats' to do battle,entertainment 791 | UK TV channel rapped for CSI ad,entertainment 792 | X Factor show gets second series,entertainment 793 | Alicia Keys to open US Super Bowl,entertainment 794 | 'Comeback' show for Friends star,entertainment 795 | Hillbillies singer Scoggins dies,entertainment 796 | Branson show flops on US screens,entertainment 797 | Housewives lift Channel 4 ratings,entertainment 798 | McCririck out of Big Brother show,entertainment 799 | Chris Evans back on the market,entertainment 800 | Top stars join US tsunami TV show,entertainment 801 | Star Trek fans fight to save show,entertainment 802 | Top of the Pops leaves BBC One,entertainment 803 | Oscar host Rock to keep it clean,entertainment 804 | Johnny and Denise lose Passport,entertainment 805 | Double eviction from Big Brother,entertainment 806 | Celebrities get their skates on,entertainment 807 | Holmes wins '2004 top TV moment',entertainment 808 | Veteran comic Cyril Fletcher dies,entertainment 809 | Little Britain vies for TV trophy,entertainment 810 | Springer criticises Opera musical,entertainment 811 | CSI shows give 'unrealistic view',entertainment 812 | Ethnic producers 'face barriers',entertainment 813 | US TV special for tsunami relief,entertainment 814 | Gervais writing Simpsons episode,entertainment 815 | John Peel replacement show begins,entertainment 816 | Brookside actress Keaveney dies,entertainment 817 | £1.8m indecency fine for Viacom,entertainment 818 | Celebrities get to stay in jungle,entertainment 819 | Triple triumph for Little Britain,entertainment 820 | BBC 'should allow more scrutiny',entertainment 821 | Greer attacks 'bully' Big Brother,entertainment 822 | No charges against TV's Cosby,entertainment 823 | Wife Swap makers sue US 'copycat',entertainment 824 | Show over for MTV's The Osbournes,entertainment 825 | Jungle TV show ratings drop by 4m,entertainment 826 | Duran Duran show set for US TV,entertainment 827 | US show sued for rat-eating stunt,entertainment 828 | Muslim group attacks TV drama 24,entertainment 829 | Brookside creator's Channel 4 bid,entertainment 830 | Little Britain two top comic list,entertainment 831 | TV show unites Angolan families,entertainment 832 | Volcano drama erupts on BBC One,entertainment 833 | South Bank Awards honour hit soap,entertainment 834 | Housewives lift Channel 4 ratings,entertainment 835 | Baywatch dubbed 'worst TV import',entertainment 836 | Stern dropped from radio stations,entertainment 837 | US TV host Clark suffers stroke,entertainment 838 | New media battle for Bafta awards,entertainment 839 | Bets off after Big Brother 'leak',entertainment 840 | School tribute for TV host Carson,entertainment 841 | Singer Ferguson 'facing eviction',entertainment 842 | Farrell due to make US TV debut,entertainment 843 | Stallone evicted from Big Brother,entertainment 844 | Fox 'too reliant on reality TV',entertainment 845 | George Michael to perform for BBC,entertainment 846 | Joy Division story to become film,entertainment 847 | New York rockers top talent poll,entertainment 848 | Aaliyah claim dismissed by court,entertainment 849 | Three DJs replace Peel radio show,entertainment 850 | Connick Jr to lead Broadway show,entertainment 851 | Elvis fans hold birthday bash,entertainment 852 | Elvis regains top chart position,entertainment 853 | Pop band Busted to 'take a break',entertainment 854 | Franz Ferdinand's art school lesson,entertainment 855 | Singer Knight backs anti-gun song,entertainment 856 | Portishead back after eight years,entertainment 857 | Fightstar take to the stage,entertainment 858 | Elvis 'set for chart hat-trick',entertainment 859 | Youssou N'Dour wins music prize,entertainment 860 | TOTP turns to Elvis impersonator,entertainment 861 | Blue beat U2 to top France honour,entertainment 862 | Ten-year tragedy of missing Manic,entertainment 863 | Mogul Wilson backing UK rap band,entertainment 864 | Singer Sizzla jailed for swearing,entertainment 865 | Spears seeks aborted tour payment,entertainment 866 | Deal to ban 'homophobic' reggae,entertainment 867 | Soul sensation ready for awards,entertainment 868 | Prince crowned 'top music earner',entertainment 869 | Brit awards for Devon music acts,entertainment 870 | Rock star sued by ex-girlfriend,entertainment 871 | Scissor Sisters triumph at Brits,entertainment 872 | Jamelia's return to the top,entertainment 873 | Cult band Kasabian surge forward,entertainment 874 | Brits debate over 'urban' music,entertainment 875 | Row threatens Hendrix museum plan,entertainment 876 | No jail for singer Courtney Love,entertainment 877 | Rapper Kanye West's shrewd soul,entertainment 878 | Singer Christina Aguilera to wed,entertainment 879 | Brits return Keane to number one,entertainment 880 | U2's desire to be number one,entertainment 881 | Lasting influence of legend Charles,entertainment 882 | Grammys honour soul star Charles,entertainment 883 | Abba reunite for musical premiere,entertainment 884 | Help for indies in download sales,entertainment 885 | T in the Park sells out in days,entertainment 886 | Black Sabbath top rock album poll,entertainment 887 | Michael film signals 'retirement',entertainment 888 | Hendrix guitar fetches £100,entertainment 889 | German music in a 'zombie' state,entertainment 890 | Musical treatment for Capra film,entertainment 891 | Famed music director Viotti dies,entertainment 892 | TV presenter Deeley drops CD:UK,entertainment 893 | The Producers scoops stage awards,entertainment 894 | Rocker Doherty in on-stage fight,entertainment 895 | The Sound of Music is coming home,entertainment 896 | Download chart debut is delayed,entertainment 897 | Rapper films music video in jail,entertainment 898 | Music man to the Oscars,entertainment 899 | Church urges Nelly show boycott,entertainment 900 | Rap feud in 50 Cent's G-Unit crew,entertainment 901 | Prodigy join V Festival line-up,entertainment 902 | DJ double act revamp chart show,entertainment 903 | Rapper 50 Cent scores chart first,entertainment 904 | Goodrem wins top female MTV prize,entertainment 905 | REM announce new Glasgow concert,entertainment 906 | Rapper 50 Cent ends protege feud,entertainment 907 | Musicians to tackle US red tape,entertainment 908 | Angels 'favourite funeral song',entertainment 909 | U2 stars enter rock Hall of Fame,entertainment 910 | Tough schedule delays Elliot show,entertainment 911 | Singer Ian Brown 'in gig arrest',entertainment 912 | No UK premiere for Rings musical,entertainment 913 | Dame Julie pops in to see Poppins,entertainment 914 | Snow Patrol bassist exits group,entertainment 915 | Fockers keeps US box office lead,entertainment 916 | Spider-Man creator wins profits,entertainment 917 | Fry set for role in Hitchhiker's,entertainment 918 | Bollywood draws global stars,entertainment 919 | Hollywood hunts hits at Sundance,entertainment 920 | Actress Roberts takes spider role,entertainment 921 | Film production 'falls' 40% in UK,entertainment 922 | Fantasy book wins Hollywood deal,entertainment 923 | The comic book genius of Stan Lee,entertainment 924 | Bangkok film festival battles on,entertainment 925 | Carry On star Patsy Rowlands dies,entertainment 926 | Tautou 'to star in Da Vinci film',entertainment 927 | Double win for Sea Inside,entertainment 928 | BBC denies Blackadder TV comeback,entertainment 929 | Corbett attacks 'dumbed-down TV',entertainment 930 | Smith loses US box office crown,entertainment 931 | BBC to pour £9m into new comedy,entertainment 932 | How the Academy Awards flourished,entertainment 933 | Hoffman hits out over modern film,entertainment 934 | Johnny Depp: The acting outlaw,entertainment 935 | Patti Smith to host arts festival,entertainment 936 | Roxy Music on Isle of Wight bill,entertainment 937 | Music mogul Fuller sells company,entertainment 938 | Johnny Cash manager Holiff dies,entertainment 939 | UK 'world's biggest music buyer',entertainment 940 | Pixies take on Reading and Leeds,entertainment 941 | Vera Drake leads UK Oscar hopes,entertainment 942 | Moreno debut makes Oscar mark,entertainment 943 | Bening makes awards breakthrough,entertainment 944 | Oscars steer clear of controversy,entertainment 945 | Kidman wins photographer battle,entertainment 946 | Bookmakers back Aviator for Oscar,entertainment 947 | Van Gogh festival film withdrawn,entertainment 948 | Douglas set for Indian adventure,entertainment 949 | Russian film wins BBC world prize,entertainment 950 | Incredibles win animation awards,entertainment 951 | Actor Scott is new Bond favourite,entertainment 952 | Singer's film to show at festival,entertainment 953 | De Niro film leads US box office,entertainment 954 | Films on war triumph at Sundance,entertainment 955 | Ink helps drive democracy in Asia,tech 956 | China net cafe culture crackdown,tech 957 | Microsoft seeking spyware trojan,tech 958 | Digital guru floats sub-$100 PC,tech 959 | Technology gets the creative bug,tech 960 | Wi-fi web reaches farmers in Peru,tech 961 | Microsoft releases bumper patches,tech 962 | Virus poses as Christmas e-mail,tech 963 | Apple laptop is 'greatest gadget',tech 964 | Google's toolbar sparks concern,tech 965 | UK net users leading TV downloads,tech 966 | IBM puts cash behind Linux push,tech 967 | UK pioneers digital film network,tech 968 | EU software patent law faces axe,tech 969 | Xbox power cable 'fire fear',tech 970 | Global blogger action day called,tech 971 | Finding new homes for old phones,tech 972 | PlayStation 3 chip to be unveiled,tech 973 | Intel unveils laser breakthrough,tech 974 | Security scares spark browser fix,tech 975 | Britons fed up with net service,tech 976 | Sun offers processing by the hour,tech 977 | Lasers help bridge network gaps,tech 978 | Game firm holds 'cast' auditions,tech 979 | Sony PSP console hits US in March,tech 980 | Warnings about junk mail deluge,tech 981 | Warning over tsunami aid website,tech 982 | Piero gives rugby perspective,tech 983 | Open source leaders slam patents,tech 984 | Reboot ordered for EU patent law,tech 985 | Solutions to net security fears,tech 986 | Mobile networks seek turbo boost,tech 987 | Global digital divide 'narrowing',tech 988 | UK gets official virus alert site,tech 989 | Iran jails blogger for 14 years,tech 990 | Microsoft seeking spyware trojan,tech 991 | US woman sues over cartridges,tech 992 | Movie body hits peer-to-peer nets,tech 993 | Security warning over 'FBI virus',tech 994 | Apple iPod family expands market,tech 995 | T-Mobile bets on 'pocket office',tech 996 | Hotspot users gain free net calls,tech 997 | DVD copy protection strengthened,tech 998 | Apple attacked over sources row,tech 999 | Sony PSP tipped as a 'must-have',tech 1000 | BBC leads interactive Bafta wins,tech 1001 | Millions buy MP3 players in US,tech 1002 | 'No re-draft' for EU patent law,tech 1003 | Domain system scam fear,tech 1004 | Cheaper chip for mobiles,tech 1005 | Blind student 'hears in colour',tech 1006 | Xbox 2 may be unveiled in summer,tech 1007 | Microsoft launches its own search,tech 1008 | Moving mobile improves golf swing,tech 1009 | Junk e-mails on relentless rise,tech 1010 | Sporting rivals go to extra time,tech 1011 | Half-Life 2 sweeps Bafta awards,tech 1012 | BT boosts its broadband packages,tech 1013 | Mobiles 'not media players yet',tech 1014 | Microsoft releases patches,tech 1015 | Concern over RFID tags,tech 1016 | Ask Jeeves joins web log market,tech 1017 | Digital guru floats sub-$100 PC,tech 1018 | Looks and music to drive mobiles,tech 1019 | Yahoo celebrates a decade online,tech 1020 | Kenyan school turns to handhelds,tech 1021 | Tough rules for ringtone sellers,tech 1022 | Creator of first Apple Mac dies,tech 1023 | 'Friends fear' with lost mobiles,tech 1024 | Telewest to challenge Sky Plus,tech 1025 | Games enter the classroom,tech 1026 | Gadget growth fuels eco concerns,tech 1027 | 'Evil twin' fear for wireless net,tech 1028 | China 'to overtake US net use',tech 1029 | US peer-to-peer pirates convicted,tech 1030 | Google launches TV search service,tech 1031 | Rich pickings for hi-tech thieves,tech 1032 | Blog reading explodes in America,tech 1033 | Software watching while you work,tech 1034 | New delay hits EU software laws,tech 1035 | Savvy searchers fail to spot ads,tech 1036 | Games firms 'face tough future',tech 1037 | Microsoft makes anti-piracy move,tech 1038 | Nintendo handheld given Euro date,tech 1039 | Smart search lets art fans browse,tech 1040 | Warning over Windows Word files,tech 1041 | Net regulation 'still possible',tech 1042 | Voters flock to blog awards site,tech 1043 | Latest Opera browser gets vocal,tech 1044 | Web radio takes Spanish rap global,tech 1045 | Movie body targets children's PCs,tech 1046 | Norway upholds 'Napster' ruling,tech 1047 | The future in your pocket,tech 1048 | What high-definition will do to DVDs,tech 1049 | Mobile games come of age,tech 1050 | California sets fines for spyware,tech 1051 | Web helps collect aid donations,tech 1052 | Mobiles rack up 20 years of use,tech 1053 | Blogs take on the mainstream,tech 1054 | Honour for UK games maker,tech 1055 | Bush website blocked outside US,tech 1056 | Blogger grounded by her airline,tech 1057 | Camera phones are 'must-haves',tech 1058 | Games 'deserve a place in class',tech 1059 | Nuclear body seeks new tech,tech 1060 | Web logs aid disaster recovery,tech 1061 | Pandas benefit from wireless net,tech 1062 | Search wars hit desktop PCs,tech 1063 | Home phones face unclear future,tech 1064 | Podcasts mark rise of DIY radio,tech 1065 | Sony wares win innovation award,tech 1066 | Portable PlayStation ready to go,tech 1067 | Viewers to be able to shape TV,tech 1068 | Games maker fights for survival,tech 1069 | Pompeii gets digital make-over,tech 1070 | Fast moving phone bugs appear,tech 1071 | Joke e-mail virus tricks users,tech 1072 | Progress on new internet domains,tech 1073 | Argonaut founder rebuilds empire,tech 1074 | Dozens held over ID fraud site,tech 1075 | Robots learn 'robotiquette' rules,tech 1076 | Concerns over Windows ATMs,tech 1077 | Attack prompts Bush site block,tech 1078 | Loyalty cards idea for TV addicts,tech 1079 | The Force is strong in Battlefront,tech 1080 | 'Ultimate game' award for Doom 3,tech 1081 | Gadget show heralds MP3 season,tech 1082 | Commodore finds new lease of life,tech 1083 | Broadband in the UK growing fast,tech 1084 | Slim PlayStation triples sales,tech 1085 | Seamen sail into biometric future,tech 1086 | US duo in first spam conviction,tech 1087 | US blogger fired by her airline,tech 1088 | Gates opens biggest gadget fair,tech 1089 | GTA sequel is criminally good,tech 1090 | BT offers free net phone calls,tech 1091 | When invention turns to innovation,tech 1092 | Firefox browser takes on Microsoft,tech 1093 | Halo fans' hope for sequel,tech 1094 | Players sought for $1m prize,tech 1095 | US top of supercomputing charts,tech 1096 | Text messages aid disaster recovery,tech 1097 | Putting a face to 'Big Brother',tech 1098 | Football Manager scores big time,tech 1099 | Musicians 'upbeat' about the net,tech 1100 | Broadband takes on TV viewing,tech 1101 | Freeze on anti-spam campaign,tech 1102 | ITunes user sues Apple over iPod,tech 1103 | Microsoft gets the blogging bug,tech 1104 | Broadband fuels online change,tech 1105 | 'Blog' picked as word of the year,tech 1106 | New Year's texting breaks record,tech 1107 | DS aims to touch gamers,tech 1108 | No half measures with Half-Life 2,tech 1109 | Games win for Blu-ray DVD format,tech 1110 | File-swappers ready new network,tech 1111 | Online games play with politics,tech 1112 | Broadband challenges TV viewing,tech 1113 | Freeze on anti-spam campaign,tech 1114 | Halo 2 sells five million copies,tech 1115 | When technology gets personal,tech 1116 | Microsoft gets the blogging bug,tech 1117 | Doors open at biggest gadget fair,tech 1118 | Who do you think you are?,tech 1119 | 'Brainwave' cap controls computer,tech 1120 | 'Brainwave' cap controls computer,tech 1121 | Europe backs digital TV lifestyle,tech 1122 | A decade of good website design,tech 1123 | 2D Metal Slug offers retro fun,tech 1124 | Casual gaming to 'take off',tech 1125 | 'Ultimate game' award for Doom 3,tech 1126 | Gadget show heralds MP3 Christmas,tech 1127 | Supercomputer breaks speed record,tech 1128 | Gadgets galore on show at fair,tech 1129 | Broadband in the UK growing fast,tech 1130 | US duo in first spam conviction,tech 1131 | Microsoft debuts security tools,tech 1132 | Slimmer PlayStation triple sales,tech 1133 | Seamen sail into biometric future,tech 1134 | US blogger fired by her airline,tech 1135 | Mobiles double up as bus tickets,tech 1136 | Mobile gig aims to rock 3G,tech 1137 | Consumers 'snub portable video',tech 1138 | Learning to love broadband,tech 1139 | Nintendo DS aims to touch gamers,tech 1140 | China 'blocks Google news site',tech 1141 | A question of trust and technology,tech 1142 | Call for action on internet scam,tech 1143 | Screensaver tackles spam websites,tech 1144 | First look at PlayStation 3 chip,tech 1145 | Online commons to spark debate,tech 1146 | Mobile gaming takes off in India,tech 1147 | Gadget market 'to grow in 2005',tech 1148 | Swap offer for pirated Windows XP,tech 1149 | Ban hits Half-Life 2 pirates hard,tech 1150 | New browser wins over net surfers,tech 1151 | Smartphones suffer Skulls attack,tech 1152 | Musical future for phones,tech 1153 | Multi-purpose TV aids India,tech 1154 | Computer grid to help the world,tech 1155 | How to make a gigapixel picture,tech 1156 | Remote control rifle range debuts,tech 1157 | Gangsters dominate gaming chart,tech 1158 | British Library gets wireless net,tech 1159 | UK broadband gets speed injection,tech 1160 | Row brewing over peer-to-peer ads,tech 1161 | How to smash a home computer,tech 1162 | Mobile picture power in your pocket,tech 1163 | Man auctions ad space on forehead,tech 1164 | Toxic web links help virus spread,tech 1165 | Millions to miss out on the net,tech 1166 | Lifestyle 'governs mobile choice',tech 1167 | Search sites get closer to users,tech 1168 | Anti-spam screensaver scrapped,tech 1169 | Europe backs digital TV lifestyle,tech 1170 | TV future in the hands of viewers,tech 1171 | Cyber criminals step up the pace,tech 1172 | Gritty return for Prince of Persia,tech 1173 | Disney backs Sony DVD technology,tech 1174 | Britons growing 'digitally obese',tech 1175 | Halo 2 heralds traffic explosion,tech 1176 | Media gadgets get moving,tech 1177 | Satellite mapping aids Darfur relief,tech 1178 | Disney backs Sony DVD technology,tech 1179 | Lifestyle 'governs mobile choice',tech 1180 | Millions to miss out on the net,tech 1181 | Spam e-mails tempt net shoppers,tech 1182 | More power to the people says HP,tech 1183 | Robotic pods take on car design,tech 1184 | Hi-tech posters guide commuters,tech 1185 | Parents face video game lessons,tech 1186 | BBC web search aids odd queries,tech 1187 | 2D Metal Slug offers retro fun,tech 1188 | Mobile multimedia slow to catch on,tech 1189 | Internet boom for gift shopping,tech 1190 | Google to scan famous libraries,tech 1191 | Microsoft takes on desktop search,tech 1192 | Gamers snap up new Sony PSP,tech 1193 | Go-ahead for new internet names,tech 1194 | Set your television to wow,tech 1195 | Hollywood to sue net film pirates,tech 1196 | PC ownership to 'double by 2010',tech 1197 | PC photo printers challenge pros,tech 1198 | The gaming world in 2005,tech 1199 | Bond game fails to shake or stir,tech 1200 | Humanoid robot learns how to run,tech 1201 | Nintendo adds media playing to DS,tech 1202 | Apple sues to stop product leaks,tech 1203 | "Gamer buys $26,500 virtual land",tech 1204 | Microsoft sets sights on spyware,tech 1205 | Video phone help for deaf people,tech 1206 | Virus poses as Christmas e-mail,tech 1207 | Fast lifts rise into record books,tech 1208 | Broadband in the UK gathers pace,tech 1209 | Hollywood campaign hits websites,tech 1210 | Poles play with GameBoy 'blip-pop',tech 1211 | Santy worm makes unwelcome visit,tech 1212 | EU software patent law delayed,tech 1213 | Apple sues 'Tiger' file sharers,tech 1214 | Apple unveils low-cost 'Mac mini',tech 1215 | Speech takes on search engines,tech 1216 | Broadband steams ahead in the US,tech 1217 | Napster offers rented music to go,tech 1218 | Broadband soars in 2004,tech 1219 | Half of UK's mobiles 'go online',tech 1220 | Blinx sequel purrs nicely,tech 1221 | The year search became personal,tech 1222 | IBM frees 500 software patents,tech 1223 | Yahoo moves into desktop search,tech 1224 | Rings of steel combat net attacks,tech 1225 | US hacker breaks into T-Mobile,tech 1226 | Windows worm travels with Tetris,tech 1227 | US state acts to stop 'spammers',tech 1228 | World tour for top video gamers,tech 1229 | Souped-up wi-fi is on the horizon,tech 1230 | EA to take on film and TV giants,tech 1231 | Tech helps disabled speed demons,tech 1232 | Web photo storage market hots up,tech 1233 | Speak easy plan for media players,tech 1234 | Cable offers video-on-demand,tech 1235 | Cyber crime booms in 2004,tech 1236 | Dublin hi-tech labs to shut down,tech 1237 | Games help you 'learn and play',tech 1238 | Hacker threat to Apple's iTunes,tech 1239 | Format wars could 'confuse users',tech 1240 | Peer-to-peer nets 'here to stay',tech 1241 | Text message record smashed,tech 1242 | Big war games battle it out,tech 1243 | Mobiles rack up 20 years of use,tech 1244 | Fast moving phone viruses appear,tech 1245 | Doors open at biggest gadget fair,tech 1246 | Microsoft debuts security tools,tech 1247 | File-swappers ready new network,tech 1248 | Games win for Blu-ray DVD format,tech 1249 | More power to the people says HP,tech 1250 | Gadget market 'to grow in 2005',tech 1251 | Apple unveils low-cost 'Mac mini',tech 1252 | Napster offers rented music to go,tech 1253 | Rings of steel combat net attacks,tech 1254 | Apple Mac mini gets warm welcome,tech 1255 | Rivals of the £400 Apple...,tech 1256 | Speak easy plan for media players,tech 1257 | US peer-to-peer pirates convicted,tech 1258 | Format wars could 'confuse users',tech 1259 | Mobiles get set for visual radio,tech 1260 | Gamers could drive high-definition,tech 1261 | How to make a greener computer,tech 1262 | Microsoft makes anti-piracy move,tech 1263 | What's next for next-gen consoles?,tech 1264 | Latest Opera browser gets vocal,tech 1265 | Mobile games come of age,tech 1266 | Web radio takes Spanish rap global,tech 1267 | What high-definition will do to DVDs,tech 1268 | Junk e-mails on relentless rise,tech 1269 | Warning over tsunami aid website,tech 1270 | More women turn to net security,tech 1271 | Sony PSP console hits US in March,tech 1272 | Ask Jeeves joins web log market,tech 1273 | Why Cell will get the hard sell,tech 1274 | PlayStation 3 processor unveiled,tech 1275 | Consumer concern over RFID tags,tech 1276 | Mobiles 'not media players yet',tech 1277 | Blind student 'hears in colour',tech 1278 | Apple attacked over sources row,tech 1279 | Mobile audio enters new dimension,tech 1280 | DVD copy protection strengthened,tech 1281 | Millions buy MP3 players in US,tech 1282 | Britons fed up with net service,tech 1283 | Intel unveils laser breakthrough,tech 1284 | EU software patent law faces axe,tech 1285 | IBM puts cash behind Linux push,tech 1286 | Apple iPod family expands market,tech 1287 | US woman sues over ink cartridges,tech 1288 | Security warning over 'FBI virus',tech 1289 | Mobile networks seek turbo boost,tech 1290 | Mac Mini heralds mini revolution,tech 1291 | Can Yahoo dominate next decade?,tech 1292 | Looks and music to drive mobiles,tech 1293 | Hotspot users gain free net calls,tech 1294 | Domain system opens door to scams,tech 1295 | Sony PSP tipped as a 'must-have',tech 1296 | 'No re-draft' for EU patent law,tech 1297 | Ultra fast wi-fi nears completion,tech 1298 | Virgin Radio offers 3G broadcast,tech 1299 | More movies head to Sony's PSP,tech 1300 | Warnings on woeful wi-fi security,tech 1301 | Cebit opens to mobile music tune,tech 1302 | Game makers get Xbox 2 sneak peek,tech 1303 | Broadband set to revolutionise TV,tech 1304 | Chip maker backs net phone calls,tech 1305 | Nintendo DS makes its Euro debut,tech 1306 | Claxton hunting first major medal,sport 1307 | O'Sullivan could run in Worlds,sport 1308 | Greene sets sights on world title,sport 1309 | IAAF launches fight against drugs,sport 1310 | "Dibaba breaks 5,000m world record",sport 1311 | Isinbayeva claims new world best,sport 1312 | O'Sullivan commits to Dublin race,sport 1313 | Hansen 'delays return until 2006',sport 1314 | Off-colour Gardener storms to win,sport 1315 | Collins to compete in Birmingham,sport 1316 | Radcliffe yet to answer GB call,sport 1317 | Edwards tips Idowu for Euro gold,sport 1318 | Kenya lift Chepkemei's suspension,sport 1319 | McIlroy aiming for Madrid title,sport 1320 | UK Athletics agrees new kit deal,sport 1321 | Verdict delay for Greek sprinters,sport 1322 | Call for Kenteris to be cleared,sport 1323 | Merritt close to indoor 400m mark,sport 1324 | London hope over Chepkemei,sport 1325 | Edwards tips Idowu for Euro gold,sport 1326 | Chepkemei hit by big ban,sport 1327 | Holmes secures comeback victory,sport 1328 | Greek pair attend drugs hearing,sport 1329 | Chepkemei joins Edinburgh line-up,sport 1330 | El Guerrouj targets cross country,sport 1331 | Collins appeals against drugs ban,sport 1332 | Holmes feted with further honour,sport 1333 | Campbell to extend sprint career,sport 1334 | Isinbayeva heads for Birmingham,sport 1335 | 2004: An Irish Athletics Year,sport 1336 | Sprinter Walker quits athletics,sport 1337 | Bekele sets sights on world mark,sport 1338 | Greek sprinters suspended by IAAF,sport 1339 | Athens memories soar above lows,sport 1340 | Collins banned in landmark case,sport 1341 | Jones doping probe begins,sport 1342 | Johnson accuses British sprinters,sport 1343 | Radcliffe proves doubters wrong,sport 1344 | Jones medals 'must go if guilty',sport 1345 | Radcliffe tackles marathon tasks,sport 1346 | Gatlin and Hayes win Owen awards,sport 1347 | Radcliffe enjoys winning comeback,sport 1348 | Collins named UK Athletics chief,sport 1349 | White admits to Balco drugs link,sport 1350 | Trial date is set for Balco case,sport 1351 | Radcliffe eyes hard line on drugs,sport 1352 | Kenteris denies faking road crash,sport 1353 | Greek pair set for hearing,sport 1354 | Jones files Conte lawsuit,sport 1355 | IAAF awaits Greek pair's response,sport 1356 | IAAF to rule on Greek sprint pair,sport 1357 | Holmes starts 2005 with GB events,sport 1358 | Gebrselassie in London triple bid,sport 1359 | Thanou bullish over drugs hearing,sport 1360 | Holmes is hit by hamstring injury,sport 1361 | Kluft impressed by Sotherton form,sport 1362 | What now for Kelly Holmes?,sport 1363 | Gardener battles to narrow win,sport 1364 | European medal chances improve,sport 1365 | McIlroy wins 800m indoor title,sport 1366 | Johnson edges out rival Sotherton,sport 1367 | Brizzel to run AAA's in Sheffield,sport 1368 | Holmes urged to compete at Worlds,sport 1369 | McIlroy continues winning streak,sport 1370 | Radcliffe will compete in London,sport 1371 | Britain boosted by Holmes double,sport 1372 | Lewis-Francis eyeing world gold,sport 1373 | GB select Holmes for double bid,sport 1374 | Holmes back on form in Birmingham,sport 1375 | Record fails to lift lacklustre meet,sport 1376 | Tomlinson stays focused on Europe,sport 1377 | Running around the Olympics,sport 1378 | Johnson uncertain about Euro bid,sport 1379 | Pavey focuses on indoor success,sport 1380 | Gardener wins double in Glasgow,sport 1381 | African double in Edinburgh,sport 1382 | Yelling takes Cardiff hat-trick,sport 1383 | Butler strikes gold in Spain,sport 1384 | Wada will appeal against ruling,sport 1385 | Greek sprinters 'won't run again',sport 1386 | IAAF will contest Greek decision,sport 1387 | Greek duo cleared in doping case,sport 1388 | Johnson too strong for GB runners,sport 1389 | Holmes starts 2005 with GB events,sport 1390 | Tulu to appear at Caledonian run,sport 1391 | Disappointed Scott in solid start,sport 1392 | GB quartet get cross country call,sport 1393 | Jones files lawsuit against Conte,sport 1394 | Thanou desperate to make return,sport 1395 | Relay squad thrilled with honours,sport 1396 | Balco case trial date pushed back,sport 1397 | Collins calls for Chambers return,sport 1398 | Costin aims for comeback in 2006,sport 1399 | Lewis-Francis turns to Christie,sport 1400 | Man Utd stroll to Cup win,sport 1401 | Van Nistelrooy set to return,sport 1402 | Moyes U-turn on Beattie dismissal,sport 1403 | Ronaldo considering new contract,sport 1404 | Smith keen on Home series return,sport 1405 | Mido makes third apology,sport 1406 | Man City 0-2 Man Utd,sport 1407 | Gerrard plays down European hopes,sport 1408 | Duff ruled out of Barcelona clash,sport 1409 | Chelsea clinch cup in extra-time,sport 1410 | Newcastle 2-1 Bolton,sport 1411 | Middlesbrough 2-2 Charlton,sport 1412 | Dundee Utd 4-1 Aberdeen,sport 1413 | Clyde 0-5 Celtic,sport 1414 | Hearts 2-1 Livingston,sport 1415 | Kenyon denies Robben Barca return,sport 1416 | Bridge could miss rest of season,sport 1417 | Parry firm over Gerrard,sport 1418 | Wright-Phillips to start on right,sport 1419 | Robben sidelined with broken foot,sport 1420 | Giggs handed Wales leading role,sport 1421 | Bosvelt optimistic over new deal,sport 1422 | Sociedad set to rescue Mladenovic,sport 1423 | Parry relishes Anfield challenge,sport 1424 | Time to get tough on friendlies?,sport 1425 | Barcelona title hopes hit by loss,sport 1426 | Parry puts Gerrard 'above money',sport 1427 | Bees handed potential Man Utd tie,sport 1428 | England's defensive crisis grows,sport 1429 | Ferdinand casts doubt over Glazer,sport 1430 | Premier League planning Cole date,sport 1431 | McCall earns Tannadice reprieve,sport 1432 | Kewell waits as injury drags on,sport 1433 | Smith aims to bring back respect,sport 1434 | Injury doubts beset Wales squad,sport 1435 | Weir poised for Sunderland move,sport 1436 | Newry to fight cup exit in courts,sport 1437 | Republic to face China and Italy,sport 1438 | Finnan says Irish can win group,sport 1439 | Irish finish with home game,sport 1440 | Israeli club look to Africa,sport 1441 | Iranian misses Israel match,sport 1442 | Highbury tunnel players in clear,sport 1443 | Bellamy under new fire,sport 1444 | Chelsea denied by James heroics,sport 1445 | Chelsea ridiculed over complaint,sport 1446 | Benitez issues warning to Gerrard,sport 1447 | Owen determined to stay in Madrid,sport 1448 | Wenger handed summer war chest,sport 1449 | Souness delight at Euro progress,sport 1450 | Downing injury mars Uefa victory,sport 1451 | Rangers seal Old Firm win,sport 1452 | SFA awaits report over Mikoliunas,sport 1453 | Palace threat over Cantona masks,sport 1454 | Legendary Dutch boss Michels dies,sport 1455 | Jol joy at 'professional' Cup win,sport 1456 | Owen delighted with Real display,sport 1457 | Ferguson fears Milan cutting edge,sport 1458 | Rush future at Chester uncertain,sport 1459 | Reyes tricked into Real admission,sport 1460 | Benitez joy as Reds take control,sport 1461 | Souness eyes summer move for Owen,sport 1462 | Wenger dejected as Arsenal slump,sport 1463 | Stam spices up Man Utd encounter,sport 1464 | Mourinho defiant on Chelsea form,sport 1465 | Hodgson relishes European clashes,sport 1466 | Coach Ranieri sacked by Valencia,sport 1467 | Cole faces lengthy injury lay-off,sport 1468 | Arsenal through on penalties,sport 1469 | Ajax refuse to rule out Jol move,sport 1470 | Unclear future for striker Baros,sport 1471 | Prutton poised for lengthy FA ban,sport 1472 | Robben plays down European return,sport 1473 | Adriano's Chelsea link rejected,sport 1474 | FA decides not to punish Mourinho,sport 1475 | Aragones angered by racism fine,sport 1476 | Boro suffer Morrison injury blow,sport 1477 | Mourinho receives Robson warning,sport 1478 | QPR keeper Day heads for Preston,sport 1479 | Cudicini misses Carling Cup final,sport 1480 | Beattie return calms attack fears,sport 1481 | Keegan hails comeback king Fowler,sport 1482 | Thompson says Gerrard should stay,sport 1483 | Cole refuses to blame van Persie,sport 1484 | Blackburn v Burnley,sport 1485 | Brentford v Southampton,sport 1486 | Desailly backs Blues revenge trip,sport 1487 | Desailly backs Blues revenge trip,sport 1488 | Mourinho expects fight to finish,sport 1489 | Cup holders Man Utd visit Everton,sport 1490 | Candela completes Bolton switch,sport 1491 | Stuart joins Norwich from Addicks,sport 1492 | Celtic make late bid for Bellamy,sport 1493 | Campbell lifts lid on United feud,sport 1494 | Rovers reject third Ferguson bid,sport 1495 | SA return to Mauritius,sport 1496 | Tottenham bid £8m for Forest duo,sport 1497 | Redknapp's Saints face Pompey tie,sport 1498 | Real in talks over Gravesen move,sport 1499 | Klinsmann issues Lehmann warning,sport 1500 | Juninho demand for O'Neill talks,sport 1501 | Wenger signs new deal,sport 1502 | FA probes crowd trouble,sport 1503 | Edu describes tunnel fracas,sport 1504 | Chelsea sack Mutu,sport 1505 | Ferguson urges Henry punishment,sport 1506 | Wenger offers Mutu hope,sport 1507 | Santini resigns as Spurs manager,sport 1508 | Mutu to hold talks with Juventus,sport 1509 | Uefa approves fake grass,sport 1510 | Yeading face Newcastle in FA Cup,sport 1511 | Anelka 'eyes Man City departure',sport 1512 | Arnesen denies rift with Santini,sport 1513 | Souness backs Smith for Scotland,sport 1514 | Gallas sees two-horse race,sport 1515 | Tevez - an Argentine in Brazil,sport 1516 | Edu blasts Arsenal,sport 1517 | Can Smith work Scottish wonders?,sport 1518 | Jansen suffers a further setback,sport 1519 | Mansfield 0-1 Leyton Orient,sport 1520 | Zambia confident and cautious,sport 1521 | Reaction from Spanish press,sport 1522 | Kerr frustrated at victory margin,sport 1523 | Mourinho plots impressive course,sport 1524 | Hearts of Oak 3-2 Cotonsport,sport 1525 | Curbishley delight for Johansson,sport 1526 | Lennon brands Rangers favourites,sport 1527 | McClaren hails Boro's Uefa spirit,sport 1528 | Benitez delight after crucial win,sport 1529 | Bristol City 2-1 Milton Keynes,sport 1530 | Hereford 1-1 Doncaster,sport 1531 | Wolves appoint Hoddle as manager,sport 1532 | Wenger keeping faith with Almunia,sport 1533 | Houllier praises Benitez regime,sport 1534 | McClaren targets Champions League,sport 1535 | Hitzlsperger waiting on O'Leary,sport 1536 | Mourinho to escape FA charge,sport 1537 | Wolves appoint Hoddle as manager,sport 1538 | Redknapp poised for Saints,sport 1539 | FA charges Liverpool and Millwall,sport 1540 | Wenger steps up row,sport 1541 | Liverpool revel in night of glory,sport 1542 | English clubs make Euro history,sport 1543 | Ferguson puts faith in youngsters,sport 1544 | Beckham relief as Real go through,sport 1545 | Man Utd through after Exeter test,sport 1546 | Hamm bows out for US,sport 1547 | Wenger rules out new keeper,sport 1548 | Liverpool pledge to keep Gerrard,sport 1549 | Pearce keen on succeeding Keegan,sport 1550 | Bomb threat at Bernabeu stadium,sport 1551 | Chelsea hold Arsenal,sport 1552 | Real will finish abandoned match,sport 1553 | Poll explains free-kick decision,sport 1554 | Solskjaer raises hopes of return,sport 1555 | Dunne keen to commit to Man City,sport 1556 | Bates seals takeover,sport 1557 | Ferguson rues failure to cut gap,sport 1558 | Old Firm pair handed suspensions,sport 1559 | Anelka apologises for criticism,sport 1560 | Ferguson rues failure to cut gap,sport 1561 | Everton's Weir cools Euro hopes,sport 1562 | Spain coach faces racism inquiry,sport 1563 | Spain coach faces racism inquiry,sport 1564 | Benitez deflects blame from Dudek,sport 1565 | Bellamy fined after row,sport 1566 | McClaren eyes Uefa Cup top spot,sport 1567 | Spurs to sign Iceland U21 star,sport 1568 | McLeish ready for criticism,sport 1569 | O'Leary agrees new Villa contract,sport 1570 | Gronkjaer agrees switch to Madrid,sport 1571 | Benitez 'to launch Morientes bid',sport 1572 | Robertson out to retain Euro lure,sport 1573 | Campbell rescues Arsenal,sport 1574 | Reds sink 10-man Magpies,sport 1575 | Strachan turns down Pompey,sport 1576 | Henry tipped for Fifa award,sport 1577 | Newcastle to join Morientes race,sport 1578 | Blues slam Blackburn over Savage,sport 1579 | Gerrard happy at Anfield,sport 1580 | Beckham rules out management move,sport 1581 | Mexicans tracking unhappy Juninho,sport 1582 | Celtic unhappy over Bulgaria date,sport 1583 | Robben and Cole earn Chelsea win,sport 1584 | Newcastle line up Babayaro,sport 1585 | Mourinho takes swipe at Arsenal,sport 1586 | Wenger shock at Newcastle dip,sport 1587 | Ferguson hails Man Utd's resolve,sport 1588 | TV calls after Carroll error,sport 1589 | Hodgson shoulders England blame,sport 1590 | Vickery out of Six Nations,sport 1591 | Yachvili savours France comeback,sport 1592 | Laporte tinkers with team,sport 1593 | Lewsey puzzle over disallowed try,sport 1594 | Fuming Robinson blasts officials,sport 1595 | O'Gara revels in Ireland victory,sport 1596 | Thomas out of Six Nations,sport 1597 | Wales coach elated with win,sport 1598 | Newcastle 27-27 Gloucester,sport 1599 | London Irish 19-33 Wasps,sport 1600 | Murray returns to Scotland fold,sport 1601 | Fear will help France - Laporte,sport 1602 | Davies favours Gloucester future,sport 1603 | Ref stands by Scotland decisions,sport 1604 | Robinson ready for difficult task,sport 1605 | Bell set for England debut,sport 1606 | O'Sullivan quick to hail Italians,sport 1607 | Italy 17-28 Ireland,sport 1608 | Jones happy with Henson heroics,sport 1609 | Double injury blow strikes Wales,sport 1610 | Kirwan demands Italy consistency,sport 1611 | Fit-again Betsen in France squad,sport 1612 | Wales critical of clumsy Grewcock,sport 1613 | Henson stakes early Lions claim,sport 1614 | Murphy: That was a bruising battle,sport 1615 | Wales make two changes for France,sport 1616 | Ireland surge past Scots,sport 1617 | Wales win in Rome,sport 1618 | White prepared for battle,sport 1619 | O'Driscoll saves Irish blushes,sport 1620 | Barkley fit for match in Ireland,sport 1621 | Wales stars need a rest - Ruddock,sport 1622 | Munster Cup tie switched to Spain,sport 1623 | Williams says he will never quit,sport 1624 | Pountney handed ban and fine,sport 1625 | France v Wales (Sat),sport 1626 | Woodward eyes Brennan for Lions,sport 1627 | Scotland v Italy (Sat),sport 1628 | Preview: Ireland v England (Sun),sport 1629 | Leeds v Saracens (Fri),sport 1630 | Worcester v Sale (Fri),sport 1631 | Robinson answers critics,sport 1632 | Sella wants Michalak recall,sport 1633 | Umaga ready for Lions,sport 1634 | "Umaga ready for ""fearsome"" Lions",sport 1635 | Campese berates whingeing England,sport 1636 | O'Driscoll/Gregan lead Aid stars,sport 1637 | Harinordoquy suffers France axe,sport 1638 | Parker misses England clash,sport 1639 | Stevens named in England line-up,sport 1640 | Bortolami predicts dour contest,sport 1641 | Corry backs skipper Robinson,sport 1642 | Prop Jones ready for hard graft,sport 1643 | Moody joins up with England,sport 1644 | Captains lining up for Aid match,sport 1645 | Castaignede fires Laporte warning,sport 1646 | Charvis set to lose fitness bid,sport 1647 | Robinson out of Six Nations,sport 1648 | England coach faces rap after row,sport 1649 | Harinordoquy suffers France axe,sport 1650 | Wilkinson return 'unlikely',sport 1651 | England 'to launch ref protest',sport 1652 | Moore questions captaincy,sport 1653 | Owen set for skipper role,sport 1654 | Italy aim to rattle England,sport 1655 | Dal Maso in to replace Bergamasco,sport 1656 | Teenager Tait picked for England,sport 1657 | Wood - Ireland can win Grand Slam,sport 1658 | Scots suffer another injury blow,sport 1659 | O'Sullivan keeps his powder dry,sport 1660 | Wales get Williams fitness boost,sport 1661 | Dawson joins England injury list,sport 1662 | Wales want rugby league training,sport 1663 | Saint-Andre anger at absent stars,sport 1664 | Ruddock backs Yapp's credentials,sport 1665 | Player burn-out worries Robinson,sport 1666 | Hodges announces rugby retirement,sport 1667 | Funding cut hits Wales Students,sport 1668 | Calder fears for Scottish rugby,sport 1669 | A year to remember for Irish,sport 1670 | Williams stays on despite dispute,sport 1671 | Lomu relishing return to action,sport 1672 | Johnson announces June retirement,sport 1673 | A November to remember,sport 1674 | South Africa sweep top awards,sport 1675 | Robinson wants dual code success,sport 1676 | All Black magic: New Zealand rugby,sport 1677 | WRU proposes season overhaul,sport 1678 | Wilkinson to lead England,sport 1679 | Hong Kong in 2011 World Cup bid,sport 1680 | Dallaglio his own man to the end,sport 1681 | Wasps 31-37 Leicester,sport 1682 | Ireland 17-12 South Africa,sport 1683 | Ireland v USA (Sat),sport 1684 | Ireland call up uncapped Campbell,sport 1685 | Ireland 21-19 Argentina,sport 1686 | England claim Dubai Sevens glory,sport 1687 | Barbarians 19-47 New Zealand,sport 1688 | Dawson wins England squad recall,sport 1689 | Borders 19-20 Ulster,sport 1690 | Lions blow to World Cup stars,sport 1691 | Campbell to be Lions consultant,sport 1692 | Lions blow to World Cup winners,sport 1693 | Wilkinson fit to face Edinburgh,sport 1694 | Dallaglio eyeing Lions tour place,sport 1695 | Dawson set for new Wasps contract,sport 1696 | Healey targets England comeback,sport 1697 | Scrum-half Williams rejoins Bath,sport 1698 | Bath faced with Tindall ultimatum,sport 1699 | Tindall wants second opinion,sport 1700 | Paris promise raises Welsh hopes,sport 1701 | Wales silent on Grand Slam talk,sport 1702 | Sculthorpe wants Lions captaincy,sport 1703 | Tigers wary of Farrell 'gamble',sport 1704 | Farrell saga to drag on - Lindsay,sport 1705 | England given tough Sevens draw,sport 1706 | Wales hails new superstar,sport 1707 | Sydney to host north v south game,sport 1708 | Celts savour Grand Slam prospect,sport 1709 | Ireland win eclipses refereeing 'errors',sport 1710 | Ireland 19-13 England,sport 1711 | Fuming Robinson blasts officials,sport 1712 | Scotland 18-10 Italy,sport 1713 | Bortolami predicts dour contest,sport 1714 | O'Connell rejects Lions rumours,sport 1715 | Taylor poised for Scotland return,sport 1716 | Vickery upbeat about arm injury,sport 1717 | Dominici backs lacklustre France,sport 1718 | Llewellyn plans Wales retirement,sport 1719 | England 17-18 France,sport 1720 | Wilkinson to miss Ireland match,sport 1721 | Italy 8-38 Wales,sport 1722 | D'Arcy injury adds to Ireland woe,sport 1723 | O'Driscoll out of Scotland game,sport 1724 | Tindall aiming to earn Lions spot,sport 1725 | O'Connor aims to grab opportunity,sport 1726 | Henman overcomes rival Rusedski,sport 1727 | Safin slumps to shock Dubai loss,sport 1728 | Ferrero eyes return to top form,sport 1729 | Roddick into San Jose final,sport 1730 | Federer claims Dubai crown,sport 1731 | Young debut cut short by Ginepri,sport 1732 | Melzer shocks Agassi,sport 1733 | Federer forced to dig deep,sport 1734 | Nadal marches on in Mexico,sport 1735 | Hantuchova in Dubai last eight,sport 1736 | Parmar ruled out of Davis Cup tie,sport 1737 | Davenport hits out at Wimbledon,sport 1738 | Dogged Federer claims Dubai crown,sport 1739 | Henman hopes ended in Dubai,sport 1740 | Mirza shocks Kuznetsova,sport 1741 | Hantuchova in Dubai last eight,sport 1742 | Murray to make Cup history,sport 1743 | Davenport hits out at Wimbledon,sport 1744 | Venus stunned by Farina Elia,sport 1745 | Martinez sees off Vinci challenge,sport 1746 | Serena becomes world number two,sport 1747 | Hingis to make unexpected return,sport 1748 | Clijsters set for February return,sport 1749 | Hewitt falls to Dent,sport 1750 | Angry Williams rejects criticism,sport 1751 | Davenport dismantles young rival,sport 1752 | Serena ends Sania Mirza's dream,sport 1753 | Kuznetsova 'failed a drugs test',sport 1754 | What now for British tennis?,sport 1755 | Hewitt overcomes wobble in Sydney,sport 1756 | Moya fights back for Indian title,sport 1757 | Rochus shocks Coria in Auckland,sport 1758 | Johansson takes Adelaide victory,sport 1759 | Hingis hints at playing comeback,sport 1760 | Slovakia seal Hopman Cup success,sport 1761 | Dementieva prevails in Hong Kong,sport 1762 | Injury sidelines Philippoussis,sport 1763 | Hewitt falls to Dent in Adelaide,sport 1764 | Federer breezes into semi-finals,sport 1765 | Davenport puts retirement on hold,sport 1766 | Rusedski angry over supplements,sport 1767 | Ad sales boost Time Warner profit,business 1768 | Dollar gains on Greenspan speech,business 1769 | Yukos unit buyer faces loan claim,business 1770 | High fuel prices hit BA's profits,business 1771 | Pernod takeover talk lifts Domecq,business 1772 | Japan narrowly escapes recession,business 1773 | Jobs growth still slow in the US,business 1774 | India calls for fair trade rules,business 1775 | Ethiopia's crop production up 24%,business 1776 | Court rejects $280bn tobacco case,business 1777 | Ask Jeeves tips online ad revival,business 1778 | Indonesians face fuel price rise,business 1779 | Peugeot deal boosts Mitsubishi,business 1780 | Telegraph newspapers axe 90 jobs,business 1781 | Air passengers win new EU rights,business 1782 | China keeps tight rein on credit,business 1783 | Parmalat boasts doubled profits,business 1784 | India's rupee hits five-year high,business 1785 | India widens access to telecoms,business 1786 | Call centre users 'lose patience',business 1787 | Rank 'set to sell off film unit',business 1788 | Sluggish economy hits German jobs,business 1789 | Mixed signals from French economy,business 1790 | US trade gap hits record in 2004,business 1791 | Yukos loses US bankruptcy battle,business 1792 | Safety alert as GM recalls cars,business 1793 | "Steel firm 'to cut' 45,000 jobs",business 1794 | Strong demand triggers oil rally,business 1795 | UK firm faces Venezuelan land row,business 1796 | Soaring oil 'hits world economy',business 1797 | Irish markets reach all-time high,business 1798 | Japanese banking battle at an end,business 1799 | Rich grab half Colombia poor fund,business 1800 | "Rover deal 'may cost 2,000 jobs'",business 1801 | Ad firm WPP's profits surge 15%,business 1802 | US gives foreign firms extra time,business 1803 | Japanese mogul arrested for fraud,business 1804 | Deutsche Telekom sees mobile gain,business 1805 | Chinese wine tempts Italy's Illva,business 1806 | Umbro profits lifted by Euro 2004,business 1807 | Fed chief warning on US deficit,business 1808 | UK Coal plunges into deeper loss,business 1809 | Saudi ministry to employ women,business 1810 | Japan economy slides to recession,business 1811 | US crude prices surge above $53,business 1812 | Industrial output falls in Japan,business 1813 | Ryanair in $4bn Boeing plane deal,business 1814 | Parmalat to return to stockmarket,business 1815 | BMW cash to fuel Mini production,business 1816 | Bad weather hits Nestle sales,business 1817 | Fiat mulls Ferrari market listing,business 1818 | Italy to get economic action plan,business 1819 | Weak dollar hits Reuters,business 1820 | Hyundai to build new India plant,business 1821 | SA unveils 'more for all' budget,business 1822 | BMW drives record sales in Asia,business 1823 | Economy 'stronger than forecast',business 1824 | Electrolux to export Europe jobs,business 1825 | Worldcom ex-boss launches defence,business 1826 | Insurance bosses plead guilty,business 1827 | Further rise in UK jobless total,business 1828 | Wembley firm won't make a profit,business 1829 | Cars pull down US retail figures,business 1830 | Lufthansa may sue over Bush visit,business 1831 | EU aiming to fuel development aid,business 1832 | German business confidence slides,business 1833 | FAO warns on impact of subsidies,business 1834 | India seeks to boost construction,business 1835 | Boeing unveils new 777 aircraft,business 1836 | Circuit City gets takeover offer,business 1837 | Japan turns to beer alternatives,business 1838 | S Korean consumers spending again,business 1839 | German growth goes into reverse,business 1840 | Turkey-Iran mobile deal 'at risk',business 1841 | EU ministers to mull jet fuel tax,business 1842 | Palestinian economy in decline,business 1843 | China had role in Yukos split-up,business 1844 | Deadline nears for Fiat-GM deal,business 1845 | ID theft surge hits US consumers,business 1846 | "Argentina, Venezuela in oil deal",business 1847 | BMW to recall faulty diesel cars,business 1848 | Takeover rumour lifts Exel shares,business 1849 | Yukos accused of lying to court,business 1850 | Mexican in US send $16bn home,business 1851 | Home loan approvals rising again,business 1852 | Manufacturing recovery 'slowing',business 1853 | Worldcom boss 'left books alone',business 1854 | Metlife buys up Citigroup insurer,business 1855 | Europe blames US over weak dollar,business 1856 | French wine gets 70m euro top-up,business 1857 | Russia gets investment blessing,business 1858 | Iranian MPs threaten mobile deal,business 1859 | Argentina closes $102.6bn debt swap,business 1860 | US economy shows solid GDP growth,business 1861 | Profits slide at India's Dr Reddy,business 1862 | Burren awarded Egyptian contracts,business 1863 | 'Strong dollar' call halts slide,business 1864 | IMF 'cuts' German growth estimate,business 1865 | "GM, Ford cut output as sales fall",business 1866 | Ebbers denies WorldCom fraud,business 1867 | Australia rates at four year high,business 1868 | US company admits Benin bribery,business 1869 | "US insurer Marsh cuts 2,500 jobs",business 1870 | US seeks new $280bn smoker ruling,business 1871 | Budget Aston takes on Porsche,business 1872 | Golden rule 'intact' says ex-aide,business 1873 | Liberian economy starts to grow,business 1874 | Slowdown hits US factory growth,business 1875 | Lufthansa flies back to profit,business 1876 | Japanese growth grinds to a halt,business 1877 | Unilever shake up as profit slips,business 1878 | France Telecom gets Orange boost,business 1879 | Brussels raps mobile call charges,business 1880 | WorldCom director admits lying,business 1881 | Glaxo aims high after profit fall,business 1882 | Japan bank shares up on link talk,business 1883 | Car giant hit by Mercedes slump,business 1884 | Ericsson sees earnings improve,business 1885 | Bank opts to leave rates on hold,business 1886 | Nigeria to boost cocoa production,business 1887 | US interest rates increased to 2%,business 1888 | US bank in $515m SEC settlement,business 1889 | Train strike grips Buenos Aires,business 1890 | Bargain calls widen Softbank loss,business 1891 | WMC profits up amid bid criticism,business 1892 | Barclays profits hit record level,business 1893 | Yukos owner sues Russia for $28bn,business 1894 | Qantas sees profits fly to record,business 1895 | Iraq to invite phone licence bids,business 1896 | Aviation firms eye booming India,business 1897 | Russian oil merger excludes Yukos,business 1898 | Brazil buy boosts Belgium's Inbev,business 1899 | Salary scandal in Cameroon,business 1900 | US adds more jobs than expected,business 1901 | Feta cheese battle reaches court,business 1902 | Ukraine revisits state sell-offs,business 1903 | Bank set to leave rates on hold,business 1904 | Winter freeze keeps oil above $50,business 1905 | German jobless rate at new record,business 1906 | Ore costs hit global steel firms,business 1907 | BMW reveals new models pipeline,business 1908 | Asian banks halt dollar's slide,business 1909 | Weak dollar trims Cadbury profits,business 1910 | Oil prices fall back from highs,business 1911 | Winn-Dixie files for bankruptcy,business 1912 | Why few targets are better than many,business 1913 | Malaysia lifts Islamic bank limit,business 1914 | Alfa Romeos 'to get GM engines',business 1915 | Saab to build Cadillacs in Sweden,business 1916 | Shares hit by MS drug suspension,business 1917 | Bank voted 8-1 for no rate change,business 1918 | Crude oil prices back above $50,business 1919 | House prices show slight increase,business 1920 | Golden rule boost for Chancellor,business 1921 | Macy's owner buys rival for $11bn,business 1922 | Industrial revival hope for Japan,business 1923 | Khodorkovsky ally denies charges,business 1924 | Qatar and Shell in $6bn gas deal,business 1925 | India unveils anti-poverty budget,business 1926 | GM pays $2bn to evade Fiat buyout,business 1927 | Ex-Boeing director gets jail term,business 1928 | Verizon 'seals takeover of MCI',business 1929 | US data sparks inflation worries,business 1930 | Yukos sues four firms for $20bn,business 1931 | Consumer spending lifts US growth,business 1932 | Crossrail link 'to get go-ahead',business 1933 | Hariri killing hits Beirut shares,business 1934 | Small firms 'hit by rising costs',business 1935 | Buyers snap up Jet Airways' shares,business 1936 | House prices suffer festive fall,business 1937 | Deutsche Boerse boosts dividend,business 1938 | Newest EU members underpin growth,business 1939 | Brewers' profits lose their fizz,business 1940 | Yangtze Electric's profits double,business 1941 | French consumer spending rising,business 1942 | GSK aims to stop Aids profiteers,business 1943 | Optimism remains over UK housing,business 1944 | Russia WTO talks 'make progress',business 1945 | Irish duo could block Man Utd bid,business 1946 | Dollar drops on reserves concerns,business 1947 | India and Russia in energy talks,business 1948 | Weak data buffets French economy,business 1949 | Business fears over sluggish EU economy,business 1950 | M&S cuts prices by average of 24%,business 1951 | US bank 'loses' customer details,business 1952 | Huge rush for Jet Airways shares,business 1953 | Bank payout to Pinochet victims,business 1954 | Qwest may spark MCI bidding war,business 1955 | Fiat chief takes steering wheel,business 1956 | Consumers drive French economy,business 1957 | US regulator to rule on pain drug,business 1958 | Yukos bankruptcy 'not US matter',business 1959 | Borussia Dortmund near bust,business 1960 | 'Post-Christmas lull' in lending,business 1961 | UK 'risks breaking golden rule',business 1962 | Worldcom director ends evidence,business 1963 | Ukraine steel sell-off 'illegal',business 1964 | Cairn shares up on new oil find,business 1965 | Georgia plans hidden asset pardon,business 1966 | Cuba winds back economic clock,business 1967 | Novartis hits acquisition trail,business 1968 | MCI shareholder sues to stop bid,business 1969 | 'Standoff' on Deutsche's LSE bid,business 1970 | Bush to outline 'toughest' budget,business 1971 | Orange colour clash set for court,business 1972 | Standard Life cuts policy bonuses,business 1973 | EMI shares hit by profit warning,business 1974 | China's Shanda buys stake in Sina,business 1975 | Mixed reaction to Man Utd offer,business 1976 | Gold falls on IMF sale concerns,business 1977 | Electronics firms eye plasma deal,business 1978 | MG Rover China tie-up 'delayed',business 1979 | US bank boss hails 'genius' Smith,business 1980 | Economy 'strong' in election year,business 1981 | SEC to rethink post-Enron rules,business 1982 | Nissan names successor to Ghosn,business 1983 | Ukraine trims privatisation check,business 1984 | Absa and Barclays talks continue,business 1985 | Rescue hope for Borussia Dortmund,business 1986 | Standard Life concern at LSE bid,business 1987 | BP surges ahead on high oil price,business 1988 | Oil companies get Russian setback,business 1989 | Gaming firm to sell UK dog tracks,business 1990 | Man Utd to open books to Glazer,business 1991 | Sales 'fail to boost High Street',business 1992 | McDonald's to sponsor MTV show,business 1993 | Call to save manufacturing jobs,business 1994 | Tsunami 'to hit Sri Lanka banks',business 1995 | Shares rise on new Man Utd offer,business 1996 | Yukos drops banks from court bid,business 1997 | Venezuela reviews foreign deals,business 1998 | Lloyd's of London head chides FSA,business 1999 | Bat spit drug firm goes to market,business 2000 | Vodafone appoints new Japan boss,business 2001 | Pension hitch for long-living men,business 2002 | Card fraudsters 'targeting web',business 2003 | Britannia members' £42m windfall,business 2004 | Firms pump billions into pensions,business 2005 | UK homes hit £3.3 trillion total,business 2006 | G7 backs Africa debt relief plan,business 2007 | Q&A: Malcolm Glazer and Man Utd,business 2008 | Making your office work for you,business 2009 | Market unfazed by Aurora setback,business 2010 | The 'ticking budget' facing the US,business 2011 | Ebbers 'aware' of WorldCom fraud,business 2012 | Renault boss hails 'great year',business 2013 | Survey confirms property slowdown,business 2014 | Bush budget seeks deep cutbacks,business 2015 | Profits stall at China's Lenovo,business 2016 | MCI shares climb on takeover bid,business 2017 | BT offers equal access to rivals,business 2018 | News Corp eyes video games market,business 2019 | Call to overhaul UK state pension,business 2020 | Singapore growth at 8.1% in 2004,business 2021 | Turkey knocks six zeros off lira,business 2022 | S Korea spending boost to economy,business 2023 | Latin America sees strong growth,business 2024 | Asia shares defy post-quake gloom,business 2025 | Booming markets shed few tears,business 2026 | Asian quake hits European shares,business 2027 | Split-caps pay £194m compensation,business 2028 | French suitor holds LSE meeting,business 2029 | Troubled Marsh under SEC scrutiny,business 2030 | Could Yukos be a blessing in disguise?,business 2031 | Nasdaq planning $100m share sale,business 2032 | Giving financial gifts to children,business 2033 | Air China in $1bn London listing,business 2034 | Oil prices reach three-month low,business 2035 | Arsenal 'may seek full share listing',business 2036 | Markets signal Brazilian recovery,business 2037 | Markets fall on weak dollar fears,business 2038 | Google shares fall as staff sell,business 2039 | Five million Germans out of work,business 2040 | India power shares jump on debut,business 2041 | Turkey turns on the economic charm,business 2042 | SBC plans post-takeover job cuts,business 2043 | German bidder in talks with LSE,business 2044 | Amex shares up on spin-off news,business 2045 | Axa Sun Life cuts bonus payments,business 2046 | Chinese dam firm 'defies Beijing',business 2047 | Stock market eyes Japan recovery,business 2048 | Iraqi voters turn to economic issues,business 2049 | EU 'too slow' on economic reforms,business 2050 | China continues breakneck growth,business 2051 | Japan's ageing workforce: built to last,business 2052 | GE sees 'excellent' world economy,business 2053 | UK economy facing 'major risks',business 2054 | Bank holds interest rate at 4.75%,business 2055 | Tobacco giants hail court ruling,business 2056 | Steady job growth continues in US,business 2057 | Glazer makes new Man Utd approach,business 2058 | Wall Street cheers Bush victory,business 2059 | Business confidence dips in Japan,business 2060 | Millions 'to lose textile jobs',business 2061 | "Dutch bank to lay off 2,850 staff",business 2062 | Fannie Mae 'should restate books',business 2063 | US to rule on Yukos refuge call,business 2064 | J&J agrees $25bn Guidant deal,business 2065 | Libya takes $1bn in unfrozen funds,business 2066 | Cactus diet deal for Phytopharm,business 2067 | Brazil plays down Varig rescue,business 2068 | Bombardier chief to leave company,business 2069 | Brazil approves bankruptcy reform,business 2070 | Retail sales show festive fervour,business 2071 | Cairn shares slump on oil setback,business 2072 | French boss to leave EADS,business 2073 | AstraZeneca hit by drug failure,business 2074 | Strong quarterly growth for Nike,business 2075 | Stormy year for property insurers,business 2076 | Parmalat sues 45 banks over crash,business 2077 | Irish company hit by Iraqi report,business 2078 | Yukos unit fetches $9bn at auction,business 2079 | S&N extends Indian beer venture,business 2080 | Euronext 'poised to make LSE bid',business 2081 | Christmas shoppers flock to tills,business 2082 | Mystery surrounds new Yukos owner,business 2083 | Euronext joins bid battle for LSE,business 2084 | Iraq and Afghanistan in WTO talks,business 2085 | Diageo to buy US wine firm,business 2086 | Tokyo says deflation 'controlled',business 2087 | No seasonal lift for house market,business 2088 | Yukos seeks court action on sale,business 2089 | Indy buys into India paper,business 2090 | Senior Fannie Mae bosses resign,business 2091 | Cannabis hopes for drug firm,business 2092 | Bush to get 'tough' on deficit,business 2093 | House prices drop as sales slow,business 2094 | Fresh hope after Argentine crisis,business 2095 | Disney settles disclosure charges,business 2096 | Putin backs state grab for Yukos,business 2097 | US firm pulls out of Iraq,business 2098 | Boeing secures giant Japan order,business 2099 | Banker loses sexism claim,business 2100 | Building giant in asbestos payout,business 2101 | Police detain Chinese milk bosses,business 2102 | India's Deccan seals $1.8bn deal,business 2103 | Venezuela and China sign oil deal,business 2104 | Jarvis sells Tube stake to Spain,business 2105 | Honda wins China copyright ruling,business 2106 | Air Jamaica back in state control,business 2107 | Battered dollar hits another low,business 2108 | Quake's economic costs emerging,business 2109 | Disaster claims 'less than $10bn',business 2110 | India-Pakistan peace boosts trade,business 2111 | US to probe airline travel chaos,business 2112 | S Korean lender faces liquidation,business 2113 | Dollar hits new low versus euro,business 2114 | Mild winter drives US oil down 6%,business 2115 | Share boost for feud-hit Reliance,business 2116 | Giant waves damage S Asia economy,business 2117 | Asia shares defy post-quake gloom,business 2118 | Israeli economy picking up pace,business 2119 | Soros group warns of Kazakh close,business 2120 | Deutsche attacks Yukos case,business 2121 | GM in crunch talks on Fiat future,business 2122 | Record year for Chilean copper,business 2123 | US consumer confidence up,business 2124 | Cash gives way to flexible friend,business 2125 | Go-ahead for Balkan oil pipeline,business 2126 | Durex maker SSL awaits firm bid,business 2127 | Nasdaq planning $100m-share sale,business 2128 | WMC says Xstrata bid is too low,business 2129 | Takeover offer for Sunderland FC,business 2130 | Warning over US pensions deficit,business 2131 | Beer giant swallows Russian firm,business 2132 | US manufacturing expands,business 2133 | Madagascar completes currency switch,business 2134 | Quiksilver moves for Rossignol,business 2135 | Dollar hovers around record lows,business 2136 | S Korean credit card firm rescued,business 2137 | Dollar slides ahead of New Year,business 2138 | VW considers opening Indian plant,business 2139 | Ukraine strikes Turkmen gas deal,business 2140 | Reliance unit loses Anil Ambani,business 2141 | India opens skies to competition,business 2142 | Oil rebounds from weather effect,business 2143 | Ban on forced retirement under 65,business 2144 | Fed warns of more US rate rises,business 2145 | Weak end-of-year sales hit Next,business 2146 | Tate & Lyle boss bags top award,business 2147 | Krispy Kreme shares hit,business 2148 | Germany nears 1990 jobless level,business 2149 | Venezuela identifies 'idle' farms,business 2150 | Egypt to sell off state-owned bank,business 2151 | Wal-Mart to pay $14m in gun suit,business 2152 | Yukos heading back to US courts,business 2153 | Deutsche Boerse set to 'woo' LSE,business 2154 | Laura Ashley chief stepping down,business 2155 | US Airways staff agree to pay cut,business 2156 | Delta cuts fares in survival plan,business 2157 | Profits jump at China's top bank,business 2158 | Green reports shun supply chain,business 2159 | Tsunami to cost Sri Lanka $1.3bn,business 2160 | Indian oil firm eyes Yukos assets,business 2161 | Monsanto fined $1.5m for bribery,business 2162 | Marsh executive in guilty plea,business 2163 | US interest rate rise expected,business 2164 | WorldCom bosses' $54m payout,business 2165 | Continental 'may run out of cash',business 2166 | House prices rebound says Halifax,business 2167 | Mixed Christmas for US retailers,business 2168 | India's Deccan gets more planes,business 2169 | South African car demand surges,business 2170 | UK bank seals South Korean deal,business 2171 | DaimlerChrysler's 2004 sales rise,business 2172 | Tsunami cost hits Jakarta shares,business 2173 | Iran budget seeks state sell-offs,business 2174 | EC calls truce in deficit battle,business 2175 | Enron bosses in $168m payout,business 2176 | UK house prices dip in November,business 2177 | Barclays shares up on merger talk,business 2178 | US firm 'bids for Lacroix label',business 2179 | $1m payoff for former Shell boss,business 2180 | India and Iran in gas export deal,business 2181 | LSE 'sets date for takeover deal',business 2182 | News Corp makes $5.4bn Fox offer,business 2183 | Israel looks to US for bank chief,business 2184 | EU-US seeking deal on air dispute,business 2185 | Nortel in $300m profit revision,business 2186 | Minister hits out at Yukos sale,business 2187 | Chinese exports rise 25% in 2004,business 2188 | Karachi stocks hit historic high,business 2189 | US trade gap ballooned in October,business 2190 | US prepares for hybrid onslaught,business 2191 | Mitsubishi in Peugeot link talks,business 2192 | BA to suspend two Saudi services,business 2193 | Cairn Energy in Indian gas find,business 2194 | Asia quake increases poverty risk,business 2195 | Fosters buys stake in winemaker,business 2196 | ECB holds rates amid growth fears,business 2197 | China bans new tobacco factories,business 2198 | UK interest rates held at 4.75%,business 2199 | German economy rebounds,business 2200 | US trade deficit widens sharply,business 2201 | Trade gap narrows as exports rise,business 2202 | Lesotho textile workers lose jobs,business 2203 | Kraft cuts snack ads for children,business 2204 | Khodorkovsky quits Yukos shares,business 2205 | Executive trio leave Aer Lingus,business 2206 | US in EU tariff chaos trade row,business 2207 | News Corp eyes video games market,business 2208 | US Ahold suppliers face charges,business 2209 | Wal-Mart fights back at accusers,business 2210 | US retail sales surge in December,business 2211 | Winemaker rejects Foster's offer,business 2212 | McDonald's boss Bell dies aged 44,business 2213 | US industrial output growth eases,business 2214 | LSE doubts boost bidders' shares,business 2215 | Qantas considers offshore option,business 2216 | Gazprom 'in $36m back-tax claim',business 2217 | Germany calls for EU reform,business 2218 | Parmalat founder offers apology,business 2219 | 'Golden economic period' to end,business 2220 | Jobs go at Oracle after takeover,business 2221 | -------------------------------------------------------------------------------- /docs/LLM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/docs/LLM.pdf -------------------------------------------------------------------------------- /images/api_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/api_key.png -------------------------------------------------------------------------------- /images/api_snippet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/api_snippet.png -------------------------------------------------------------------------------- /images/app_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/app_run.png -------------------------------------------------------------------------------- /images/gpt4all_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/gpt4all_demo.png -------------------------------------------------------------------------------- /images/gpt4all_snippet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/gpt4all_snippet.png -------------------------------------------------------------------------------- /images/llm_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/llm_demo.png -------------------------------------------------------------------------------- /images/main_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/main_ui.png -------------------------------------------------------------------------------- /images/main_ui_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/main_ui_.png -------------------------------------------------------------------------------- /images/qa_chainbot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/qa_chainbot.png -------------------------------------------------------------------------------- /images/voice_bot_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/images/voice_bot_demo.png -------------------------------------------------------------------------------- /models/pychatgpt_ui: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | echo "pychatgpt_ui package" -------------------------------------------------------------------------------- /pychatgpt_gui/__init__.py: -------------------------------------------------------------------------------- 1 | # To get modules 2 | from . import app 3 | from . import voice_bot 4 | from . import api 5 | from . import pygpt4all_cli 6 | from . import utils 7 | # To get sub-modules 8 | from .app import * 9 | from .voice_bot import * 10 | from .api import * 11 | from .pygpt4all_cli import * 12 | from .utils import * 13 | 14 | ################################################################################# 15 | module_type = 'Running' if __name__ == "__main__" else 'Imported' 16 | version_number = '0.0.1' 17 | print(f"""{module_type} pyChatGPT_GUI version:{version_number}.""") 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /pychatgpt_gui/api.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | 3 | import os, sys 4 | import utils 5 | import uuid 6 | import json 7 | import subprocess, threading 8 | 9 | FILE_DIR = os.path.dirname(os.path.abspath(__file__)) 10 | REPO_DIR = os.path.dirname(FILE_DIR) 11 | STATE_DIR = os.path.join(FILE_DIR, "state") 12 | sys.path.append(REPO_DIR) 13 | if not os.path.exists(STATE_DIR): 14 | os.mkdir(STATE_DIR) 15 | import time 16 | 17 | 18 | def get_openai_api_key(): 19 | return os.getenv("OPENAI_API_KEY") 20 | 21 | 22 | running_apis = [] 23 | 24 | 25 | def get_state(state_file): 26 | with open(state_file, "r") as f: 27 | state = json.load(f) 28 | return state 29 | 30 | 31 | def set_state(state_file, state): 32 | with open(state_file, "w") as f: 33 | json.dump(state, f) 34 | 35 | 36 | class AutoAPI: 37 | def __init__(self, openai_key, ai_name, ai_role, top_5_goals): 38 | self.openai_key = openai_key 39 | hex = uuid.uuid4().hex 40 | print(hex) 41 | self.state_file = os.path.join(STATE_DIR, f"state_{hex}.json") 42 | self.log_file = os.path.join(STATE_DIR, f"log_{hex}.json") 43 | 44 | newline = "\n" 45 | with open(os.path.join(REPO_DIR, "ai_settings.yaml"), "w") as f: 46 | f.write( 47 | f"""ai_goals: 48 | {newline.join([f'- {goal[0]}' for goal in top_5_goals if goal[0]])} 49 | ai_name: {ai_name} 50 | ai_role: {ai_role} 51 | """ 52 | ) 53 | state = { 54 | "pending_input": None, 55 | "awaiting_input": False, 56 | "messages": [], 57 | "last_message_read_index": -1, 58 | } 59 | set_state(self.state_file, state) 60 | 61 | with open(self.log_file, "w") as f: 62 | subprocess.Popen( 63 | [ 64 | "python", 65 | os.path.join(REPO_DIR, "ui", "api.py"), 66 | openai_key, 67 | self.state_file, 68 | ], 69 | cwd=REPO_DIR, 70 | stdout=f, 71 | stderr=f, 72 | ) 73 | 74 | def send_message(self, message="Y"): 75 | state = get_state(self.state_file) 76 | state["pending_input"] = message 77 | state["awaiting_input"] = False 78 | set_state(self.state_file, state) 79 | 80 | def get_chatbot_response(self): 81 | while True: 82 | state = get_state(self.state_file) 83 | if ( 84 | state["awaiting_input"] 85 | and state["last_message_read_index"] >= len(state["messages"]) - 1 86 | ): 87 | break 88 | if state["last_message_read_index"] >= len(state["messages"]) - 1: 89 | time.sleep(1) 90 | else: 91 | state["last_message_read_index"] += 1 92 | title, content = state["messages"][state["last_message_read_index"]] 93 | yield (f"**{title.strip()}** " if title else "") + utils.remove_color( 94 | content 95 | ).replace("\n", "
") 96 | set_state(self.state_file, state) 97 | 98 | 99 | if __name__ == "__main__": 100 | print(sys.argv) 101 | _, openai_key, state_file = sys.argv 102 | os.environ["OPENAI_API_KEY"] = openai_key 103 | import autogpt.config.config 104 | from autogpt.logs import logger 105 | from autogpt.cli import main 106 | import autogpt.utils 107 | from autogpt.spinner import Spinner 108 | 109 | def add_message(title, content): 110 | state = get_state(state_file) 111 | state["messages"].append((title, content)) 112 | set_state(state_file, state) 113 | 114 | def typewriter_log(title="", title_color="", content="", *args, **kwargs): 115 | add_message(title, content) 116 | 117 | def warn(message, title="", *args, **kwargs): 118 | add_message(title, message) 119 | 120 | def error(title, message="", *args, **kwargs): 121 | add_message(title, message) 122 | 123 | def clean_input(prompt=""): 124 | add_message(None, prompt) 125 | state = get_state(state_file) 126 | state["awaiting_input"] = True 127 | set_state(state_file, state) 128 | while state["pending_input"] is None: 129 | state = get_state(state_file) 130 | print("Waiting for input...") 131 | time.sleep(1) 132 | print("Got input") 133 | pending_input = state["pending_input"] 134 | state["pending_input"] = None 135 | set_state(state_file, state) 136 | return pending_input 137 | 138 | def spinner_start(): 139 | add_message(None, "Thinking...") 140 | 141 | logger.typewriter_log = typewriter_log 142 | logger.warn = warn 143 | logger.error = error 144 | autogpt.utils.clean_input = clean_input 145 | Spinner.spin = spinner_start 146 | 147 | sys.argv = sys.argv[:1] 148 | main() 149 | -------------------------------------------------------------------------------- /pychatgpt_gui/app.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | 3 | """ 4 | @author: Ajay Arunachalam 5 | Created on: 01/05/2023 6 | Aim: A Simple Python GUI Wrapper built for unleashing the power of GPT 7 | Version: 0.0.1 8 | """ 9 | 10 | from gpt_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper 11 | from langchain.chat_models import ChatOpenAI 12 | import openai 13 | import gradio as gr 14 | from gradio.themes.base import Base 15 | from gradio.themes.utils import colors, fonts, sizes 16 | from typing import Iterable 17 | import sys 18 | import os 19 | import json 20 | import pandas as pd 21 | import numpy as np 22 | import warnings 23 | warnings.filterwarnings('ignore') 24 | import whisper as whisper 25 | from TTS.api import TTS 26 | from gtts import gTTS 27 | import speech_recognition as sr 28 | import sys 29 | import playsound 30 | from typing import Text 31 | from transformers import pipeline 32 | import utils 33 | from api import AutoAPI, get_openai_api_key 34 | import shutil 35 | from langchain.embeddings.openai import OpenAIEmbeddings 36 | from langchain.vectorstores import Chroma 37 | from langchain.text_splitter import CharacterTextSplitter 38 | from langchain.chains import ConversationalRetrievalChain 39 | from langchain.chat_models import ChatOpenAI 40 | from langchain.document_loaders import DirectoryLoader 41 | from nomic.gpt4all import GPT4All 42 | from pygpt4all.models.gpt4all import GPT4All 43 | from langchain import PromptTemplate, LLMChain 44 | from langchain.llms import GPT4All 45 | from langchain.callbacks.base import CallbackManager 46 | from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler 47 | 48 | with open('../api_key.json', 'r') as f: 49 | openai_key = json.load(f) 50 | print(openai_key) 51 | 52 | if 'api_key' in openai_key: 53 | os.environ["OPENAI_API_KEY"] = openai_key['api_key'] 54 | 55 | class Seafoam(Base): 56 | def __init__( 57 | self, 58 | *, 59 | primary_hue: colors.Color | str = colors.emerald, 60 | secondary_hue: colors.Color | str = colors.blue, 61 | neutral_hue: colors.Color | str = colors.blue, 62 | spacing_size: sizes.Size | str = sizes.spacing_md, 63 | radius_size: sizes.Size | str = sizes.radius_md, 64 | text_size: sizes.Size | str = sizes.text_lg, 65 | font: fonts.Font 66 | | str 67 | | Iterable[fonts.Font | str] = ( 68 | fonts.GoogleFont("Quicksand"), 69 | "ui-sans-serif", 70 | "sans-serif", 71 | ), 72 | font_mono: fonts.Font 73 | | str 74 | | Iterable[fonts.Font | str] = ( 75 | fonts.GoogleFont("IBM Plex Mono"), 76 | "ui-monospace", 77 | "monospace", 78 | ), 79 | ): 80 | super().__init__( 81 | primary_hue=primary_hue, 82 | secondary_hue=secondary_hue, 83 | neutral_hue=neutral_hue, 84 | spacing_size=spacing_size, 85 | radius_size=radius_size, 86 | text_size=text_size, 87 | font=font, 88 | font_mono=font_mono, 89 | ) 90 | super().set( 91 | body_background_fill="repeating-linear-gradient(45deg, *primary_200, *primary_200 10px, *primary_50 10px, *primary_50 20px)", 92 | body_background_fill_dark="repeating-linear-gradient(45deg, *primary_800, *primary_800 10px, *primary_900 10px, *primary_900 20px)", 93 | button_primary_background_fill="linear-gradient(90deg, *primary_300, *secondary_400)", 94 | button_primary_background_fill_hover="linear-gradient(90deg, *primary_200, *secondary_300)", 95 | button_primary_text_color="white", 96 | button_primary_background_fill_dark="linear-gradient(90deg, *primary_600, *secondary_800)", 97 | slider_color="*secondary_300", 98 | slider_color_dark="*secondary_600", 99 | block_title_text_weight="600", 100 | block_border_width="3px", 101 | block_shadow="*shadow_drop_lg", 102 | button_shadow="*shadow_drop_lg", 103 | button_large_padding="32px", 104 | ) 105 | 106 | 107 | seafoam = Seafoam() 108 | 109 | # APP-1 110 | '''Train ChatGPT on Custom Data''' 111 | 112 | def construct_index(directory_path): 113 | max_input_size = 4096 114 | num_outputs = 512 115 | max_chunk_overlap = 20 116 | chunk_size_limit = 600 117 | 118 | prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit) 119 | 120 | llm_predictor = LLMPredictor(llm=ChatOpenAI(temperature=0.7, model_name="gpt-3.5-turbo", max_tokens=num_outputs)) 121 | 122 | documents = SimpleDirectoryReader(directory_path).load_data() 123 | 124 | index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper) 125 | 126 | index.save_to_disk('index.json') 127 | 128 | return index 129 | 130 | def chatbot(input_text): 131 | index = GPTSimpleVectorIndex.load_from_disk('index.json') 132 | response = index.query(input_text, response_mode="compact") 133 | return response.response 134 | 135 | iface1 = gr.Interface(theme=seafoam, fn=chatbot, 136 | inputs=gr.components.Textbox(lines=7, label="Enter your text"), 137 | outputs="text", 138 | title="Custom-data trained CHATGPT AI Bot", 139 | css="footer {visibility: hidden}") 140 | 141 | index = construct_index("../docs") 142 | #iface1.launch(share=True) 143 | 144 | # APP-2 145 | 146 | '''Using openai directly''' 147 | 148 | def analyze_text(input_text): 149 | # Classify the sentiment of the input text 150 | response = openai.Completion.create( 151 | engine="text-davinci-002", 152 | prompt=f"Classify the Sentiment of this user inputted text: '{input_text}'", 153 | max_tokens=512, 154 | n=1, 155 | stop=None, 156 | temperature=0.7, 157 | ) 158 | sentiment = response.choices[0].text.strip() 159 | return sentiment 160 | 161 | 162 | 163 | iface2 = gr.Interface(theme=seafoam, fn=analyze_text, inputs=gr.components.Textbox(lines=7, label="Enter your text"), 164 | outputs="text", 165 | title="Analyze Sentiment", 166 | css="footer {visibility: hidden}") 167 | #iface2.launch(share=True) 168 | 169 | # APP - 3 170 | '''Using openai directly''' 171 | 172 | def classify(input_text): 173 | # Classify the label of the input text 174 | response = openai.Completion.create( 175 | engine="text-davinci-002", 176 | prompt=f"Predict the Label of this user inputted text from these provided class labels, i.e.., business, entertainment, politics, sports, technology : '{input_text}'", 177 | max_tokens=512, 178 | n=1, 179 | stop=None, 180 | temperature=0.7, 181 | ) 182 | pr_label = response.choices[0].text.strip() 183 | return pr_label 184 | 185 | iface3 = gr.Interface(theme=seafoam, fn=classify, inputs=gr.components.Textbox(lines=10, label="Enter your text"), 186 | outputs="text", 187 | title="Predict label of your inputted text from the predefined tags based on ChatGPT", 188 | css="footer {visibility: hidden}") 189 | 190 | #iface3.launch(share=True) 191 | 192 | # APP - 4 193 | 194 | '''Voice Assistant with CHATGPT AI''' 195 | 196 | def setup_voice_assistant(): 197 | # Initialize the recognizer 198 | r = sr.Recognizer() 199 | return r 200 | 201 | def speak_chatgpt_response_text(output_text): 202 | # Initialize gTTS engine 203 | lang_accent = 'com.en' 204 | filename = "user_input.wav" 205 | tts = gTTS(output_text, tld=lang_accent) 206 | tts.save(filename) 207 | playsound.playsound(filename) 208 | os.remove(filename) 209 | return tts 210 | 211 | def ask_chatgpt(inputted_voice_text:str)->Text: 212 | engine = "text-davinci-003" 213 | results = [] 214 | # Generate a streamed response 215 | for resp in openai.Completion.create(engine=engine, prompt=inputted_voice_text, max_tokens=512, n=1, stop=None, temperature=0.7, stream=True, ): 216 | text = resp.choices[0].text 217 | results.append(text) 218 | sys.stdout.write(text) 219 | sys.stdout.flush() 220 | 221 | return "".join(results) 222 | 223 | 224 | def run_voice_bot(user_input): 225 | 226 | while True: 227 | # Exception handling to handle exceptions at runtime if 228 | # no user prompt given 229 | try: 230 | r = setup_voice_assistant() 231 | # use the microphone as source for input. 232 | with sr.Microphone() as sr_audio: 233 | print("Microphone is open now say your prompt...") 234 | # wait for a second to let the recognizer 235 | # adjust the energy threshold cbased on 236 | # the surrounding noise level 237 | r.adjust_for_ambient_noise(sr_audio, duration=0.2) 238 | 239 | # listens for the user's input 240 | audio_user = r.listen(sr_audio) 241 | 242 | # Using google to recognize audio 243 | my_prompt = r.recognize_google(audio_user) 244 | my_prompt = my_prompt.lower() 245 | 246 | print("Did you speak :", my_prompt) 247 | prompt_resp_text = ask_chatgpt(my_prompt) 248 | speech_output = speak_chatgpt_response_text(prompt_resp_text) 249 | 250 | except Exception as e: 251 | print(e) 252 | print("Could not request results; {0}".format(e)) 253 | return prompt_resp_text, speech_output 254 | 255 | iface4 = gr.Interface(fn = run_voice_bot, 256 | inputs = gr.components.Audio(source="microphone", type="numpy", label="Speak here..."), 257 | outputs = ['text','audio'], 258 | verbose = True, 259 | title = 'ChatGPT-based Voice Assistant Bot', 260 | description = 'A simple application to speak with CHATGPT Bot', 261 | css="footer {visibility: hidden}" 262 | ) 263 | #iface4.launch(share=True) 264 | 265 | # APP - 5 266 | 267 | '''AutoGPT Demo APP''' 268 | 269 | FILE_DIR = os.path.dirname(os.path.abspath(__file__)) 270 | OUTPUT_DIR = os.path.join(os.path.dirname(FILE_DIR), "auto_gpt_workspace") 271 | if not os.path.exists(OUTPUT_DIR): 272 | os.mkdir(OUTPUT_DIR) 273 | 274 | CSS = """ 275 | #chatbot {font-family: monospace;} 276 | #files .generating {display: none;} 277 | #files .min {min-height: 0px;} 278 | """ 279 | 280 | with gr.Blocks(css=CSS) as iface5: 281 | with gr.Column() as setup_pane: 282 | gr.Markdown(f"""# Auto-GPT 283 | 1. Duplicate this Space: Duplicate Space This will **NOT** work without duplication! 284 | 2. Enter your OpenAI API Key below. 285 | """) 286 | with gr.Row(): 287 | open_ai_key = gr.Textbox( 288 | value=get_openai_api_key(), 289 | label="OpenAI API Key", 290 | type="password", 291 | ) 292 | gr.Markdown( 293 | "3. Fill the values below, then click 'Start'. There are example values you can load at the bottom of this page." 294 | ) 295 | with gr.Row(): 296 | ai_name = gr.Textbox(label="AI Name", placeholder="e.g. Entrepreneur-GPT") 297 | ai_role = gr.Textbox( 298 | label="AI Role", 299 | placeholder="e.g. an AI designed to autonomously develop and run businesses with the sole goal of increasing your net worth.", 300 | lines=10, 301 | ) 302 | top_5_goals = gr.Dataframe( 303 | row_count=(5, "fixed"), 304 | col_count=(1, "fixed"), 305 | headers=["AI Goals - Enter up to 5"], 306 | type="array" 307 | ) 308 | start_btn = gr.Button("Start", variant="primary") 309 | with open(os.path.join(FILE_DIR, "examples.json"), "r") as f: 310 | example_values = json.load(f) 311 | gr.Examples( 312 | example_values, 313 | [ai_name, ai_role, top_5_goals], 314 | ) 315 | with gr.Column(visible=False) as main_pane: 316 | with gr.Row(): 317 | with gr.Column(scale=2): 318 | chatbot = gr.Chatbot(elem_id="chatbot") 319 | with gr.Row(): 320 | yes_btn = gr.Button("Yes", variant="primary", interactive=False) 321 | consecutive_yes = gr.Slider( 322 | 1, 10, 1, step=1, label="Consecutive Yes", interactive=False 323 | ) 324 | custom_response = gr.Textbox( 325 | label="Custom Response", 326 | placeholder="Press 'Enter' to Submit.", 327 | interactive=False, 328 | ) 329 | with gr.Column(scale=1): 330 | gr.HTML( 331 | lambda: f""" 332 | Generated Files 333 |
{utils.format_directory(OUTPUT_DIR)}
334 | """, every=3, elem_id="files" 335 | ) 336 | download_btn = gr.Button("Download All Files") 337 | 338 | chat_history = gr.State([[None, None]]) 339 | api = gr.State(None) 340 | 341 | def start(open_ai_key, ai_name, ai_role, top_5_goals): 342 | auto_api = AutoAPI(open_ai_key, ai_name, ai_role, top_5_goals) 343 | return gr.Column.update(visible=False), gr.Column.update(visible=True), auto_api 344 | 345 | def bot_response(chat, api): 346 | messages = [] 347 | for message in api.get_chatbot_response(): 348 | messages.append(message) 349 | chat[-1][1] = "\n".join(messages) + "..." 350 | yield chat 351 | chat[-1][1] = "\n".join(messages) 352 | yield chat 353 | 354 | def send_message(count, chat, api, message="Y"): 355 | if message != "Y": 356 | count = 1 357 | for i in range(count): 358 | chat.append([message, None]) 359 | yield chat, count - i 360 | api.send_message(message) 361 | for updated_chat in bot_response(chat, api): 362 | yield updated_chat, count - i 363 | 364 | def activate_inputs(): 365 | return { 366 | yes_btn: gr.Button.update(interactive=True), 367 | consecutive_yes: gr.Slider.update(interactive=True), 368 | custom_response: gr.Textbox.update(interactive=True), 369 | } 370 | 371 | def deactivate_inputs(): 372 | return { 373 | yes_btn: gr.Button.update(interactive=False), 374 | consecutive_yes: gr.Slider.update(interactive=False), 375 | custom_response: gr.Textbox.update(interactive=False), 376 | } 377 | 378 | start_btn.click( 379 | start, 380 | [open_ai_key, ai_name, ai_role, top_5_goals], 381 | [setup_pane, main_pane, api], 382 | ).then(bot_response, [chat_history, api], chatbot).then( 383 | activate_inputs, None, [yes_btn, consecutive_yes, custom_response] 384 | ) 385 | 386 | yes_btn.click( 387 | deactivate_inputs, None, [yes_btn, consecutive_yes, custom_response] 388 | ).then( 389 | send_message, [consecutive_yes, chat_history, api], [chatbot, consecutive_yes] 390 | ).then( 391 | activate_inputs, None, [yes_btn, consecutive_yes, custom_response] 392 | ) 393 | custom_response.submit( 394 | deactivate_inputs, None, [yes_btn, consecutive_yes, custom_response] 395 | ).then( 396 | send_message, 397 | [consecutive_yes, chat_history, api, custom_response], 398 | [chatbot, consecutive_yes], 399 | ).then( 400 | activate_inputs, None, [yes_btn, consecutive_yes, custom_response] 401 | ) 402 | 403 | def download_all_files(): 404 | shutil.make_archive("outputs", "zip", OUTPUT_DIR) 405 | 406 | download_btn.click(download_all_files).then(None, _js=utils.DOWNLOAD_OUTPUTS_JS) 407 | 408 | iface5.queue(concurrency_count=20) 409 | 410 | # APP-6 411 | '''Q&A bot with Conversational Retrieval Chain for your Custom-data''' 412 | 413 | 414 | os.environ["OPENAI_API_KEY"] = openai_key['api_key'] 415 | llm = ChatOpenAI(temperature=0,model_name="gpt-4") 416 | 417 | # Data Ingestion 418 | pdf_loader = DirectoryLoader('../qa_docs/', glob="**/*.pdf") 419 | excel_loader = DirectoryLoader('../qa_docs/', glob="**/*.txt") 420 | word_loader = DirectoryLoader('../qa_docs/', glob="**/*.docx") 421 | logs_loader = DirectoryLoader('../qa_docs/', glob="**/*.txt") 422 | 423 | loaders = [pdf_loader, excel_loader, word_loader, logs_loader] 424 | documents = [] 425 | for loader in loaders: 426 | documents.extend(loader.load()) 427 | 428 | # Chunk and Embeddings 429 | text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0) 430 | documents = text_splitter.split_documents(documents) 431 | 432 | embeddings = OpenAIEmbeddings() 433 | vectorstore = Chroma.from_documents(documents, embeddings) 434 | 435 | # Initialise Langchain - Conversation Retrieval Chain 436 | qa = ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=0), vectorstore.as_retriever()) 437 | 438 | with gr.Blocks() as iface6: 439 | chatbot = gr.Chatbot() 440 | msg = gr.Textbox() 441 | clear = gr.Button("Clear") 442 | chat_history = [] 443 | 444 | def user(user_message, history): 445 | # Get response from QA chain 446 | response = qa({"question": user_message, "chat_history": history}) 447 | # Append user message and response to chat history 448 | history.append((user_message, response["answer"])) 449 | return gr.update(value=""), history 450 | msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False) 451 | clear.click(lambda: None, None, chatbot, queue=False) 452 | 453 | iface6.queue(concurrency_count=20) 454 | 455 | 456 | # APP-7 457 | '''Using open-source GPT4 large language model based on LLaMa and GPT-J''' 458 | 459 | def new_text_callback(text): 460 | print(text, end="") 461 | 462 | def run_llm(prompt_input): 463 | from pygpt4all.models.gpt4all import GPT4All 464 | obj = GPT4All('../models/ggml-gpt4all-l13b-snoozy.bin') #'../models/ggml-gpt4all-l13b-snoozy.bin' 465 | resp = obj.generate(f"'{prompt_input}'", n_predict=100, new_text_callback=new_text_callback) 466 | return resp 467 | 468 | iface7 = gr.Interface(theme=seafoam, fn=run_llm, inputs=gr.components.Textbox(lines=7, label="Enter your text"), 469 | outputs=gr.components.Textbox(lines=10), 470 | title="Open-Source LLM Demo", 471 | css="footer {visibility: hidden}") 472 | 473 | #iface7.launch(share=True) 474 | 475 | 476 | # APP - 8 477 | '''Using LangChain to interact with GPT4All models''' 478 | 479 | # Download a GPT4All model from http://gpt4all.io/models/ggml-gpt4all-l13b-snoozy.bin 480 | 481 | # Download the GPT4All-J model from https://gpt4all.io/models/ggml-gpt4all-j-v1.3-groovy.bin 482 | 483 | def run_langchain_gpt4(prompt_input, local_path='../models/ggml-gpt4all-l13b-snoozy.bin'): 484 | from langchain.llms import GPT4All 485 | template = """Question: {question} 486 | Answer: Let's think step by step.""" 487 | prompt = PromptTemplate(template=template, input_variables=["question"]) 488 | # Callbacks support token-wise streaming 489 | callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]) 490 | # Verbose is required to pass to the callback manager 491 | llm = GPT4All(model=local_path, callback_manager=callback_manager, verbose=True) # 492 | llm_chain = LLMChain(prompt=prompt, llm=llm) 493 | question = f"'{prompt_input}'" 494 | response = llm_chain.run(question) 495 | return response 496 | 497 | iface8 = gr.Interface(theme=seafoam, fn=run_langchain_gpt4, inputs=gr.components.Textbox(lines=7, label="Enter your text"), 498 | outputs=gr.components.Textbox(lines=10), 499 | title="GPT4All Model Demo", 500 | css="footer {visibility: hidden}") 501 | 502 | #iface8.launch(share=True) 503 | 504 | 505 | # combine to create a multipage app 506 | chatgpt_custom_ui_demo = gr.TabbedInterface([iface1, iface2, iface3, iface4, iface5, iface6, iface7, iface8], ["Train ChatGPT Model on Your Own Documents", "Sentiment Analyzer with ChatGPT", "Predict Input Label using Predefined Engineered Prompt - ChatGPT", "Voice Assistant with CHATGPT AI","AUTOGPT DEMO", "Conversational Retrieval QA ChainBot","Open-Source LLM","GPT4All"], theme=seafoam, css="footer {visibility: hidden}") 507 | 508 | if __name__ == "__main__": 509 | chatgpt_custom_ui_demo.launch(debug=True, share=True, file_directories=[OUTPUT_DIR]) 510 | chatgpt_custom_ui_demo.queue(concurrency_count=20) -------------------------------------------------------------------------------- /pychatgpt_gui/examples.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | "Entrepreneur-GPT", 4 | "an AI designed to autonomously develop and run businesses with the sole goal of increasing your net worth", 5 | [ 6 | ["Increase net worth"], 7 | ["Grow Twitter Account"], 8 | ["Develop and manage multiple businesses autonomously"] 9 | ] 10 | ], 11 | [ 12 | "JobFinder-GPT", 13 | "An AI that finds the most relevant job postings for a UI designer on LinkedIn and Glassdoor and applies for you.", 14 | [ 15 | ["Collect my existing credentials from https://www.linkedin.com/in/satyanadella."], 16 | ["Find companies that have been hiring for UI designer roles on LinkedIn."], 17 | ["Apply for the jobs."] 18 | ] 19 | ], 20 | [ 21 | "PaperReader-GPT", 22 | "An AI that finds the latest AI papers on arXiV and gives one sentences summaries.", 23 | [ 24 | ["Find the top papers on AI on arXiv."], 25 | ["Summarize their abstracts into a single line."] 26 | ] 27 | ] 28 | ] -------------------------------------------------------------------------------- /pychatgpt_gui/flagged/log.csv: -------------------------------------------------------------------------------- 1 | Enter your text,output,flag,username,timestamp 2 | which are the 4 exam boards?,"' 3 | The four exam boards are not specified in the context information.",,,2023-04-18 11:46:02.526784 4 | ,,,,,2023-04-24 13:06:23.600099 5 | ,,,,,2023-04-24 13:06:42.662009 6 | -------------------------------------------------------------------------------- /pychatgpt_gui/index.json: -------------------------------------------------------------------------------- 1 | {"index_struct_id": "3cf10b2e-3fab-400d-9aea-7bc757372b83", "docstore": {"docs": {"3cf10b2e-3fab-400d-9aea-7bc757372b83": {"text": null, "doc_id": "3cf10b2e-3fab-400d-9aea-7bc757372b83", "embedding": null, "extra_info": null, "nodes_dict": {"1841988046985287133": {"text": "A large language model (LLM) is a language model consisting of a neural network with many \nparameters (typically billions of weights or more), trained on large quantities of unlabeled text using \nself-supervised learning or semi -supervised learning.[1] LLMs e merged around 2018 and perform well \nat a wide variety of tasks. This has shifted the focus of natural language processing research away from \nthe previous paradigm of training specialized supervised models for specific tasks.[2] \nProperties[edit] \nThough the term large language model has no formal definition, it often refers to deep learning \nmodels having a parameter count on the order of billions or more.[3] LLMs are general purpose \nmodels which excel at a wide range of tasks, as opposed to being trained for one specific task (such as \nsentiment analysis, named entity recognition, or mathematical reasoning).[2][4] The skill with which \nthey accomplish tasks, and the range of tasks at which they are capable, seems to be a function of the \namount of resources (data , parameter -size, computing power) devoted to them, in a way that is not \ndependent on additional breakthroughs in design.[5] \nThough trained on simple tasks along the lines of predicting the next word in a sentence, neural \nlanguage models with sufficient tr aining and parameter counts are found to capture much of the \nsyntax and semantics of human language. In addition, large language models demonstrate \nconsiderable general knowledge about the world, and are able to \"memorize\" a great quantity of facts \nduring training.[2] Generative LLMs have been observed to confidently assert claims of fact which do \nnot seem to be justified by their training data, a phenomenon which has been termed \n\"hallucination\".[6] \nPretraining datasets[edit] \nLLMs are pre -trained, which rel ies on large textual datasets. Some commonly used textual datasets \nare Common Crawl, The Pile, MassiveText,[7] Wikipedia, and GitHub. See list of datasets for machine -\nlearning research#Internet for more examples. They run up to 10 trillion words in size. \nThe stock of high -quality language data is within 4.6 -- 17 trillion words, which is within an order of \nmagnitude for the largest textual datasets.[8] \n ", "doc_id": "dda67255-29c2-4924-b599-b9d46559451e", "embedding": null, "extra_info": null, "index": 0, "child_indices": [], "ref_doc_id": "bb4cb21b-cb29-496b-969e-f21ecf782d93", "node_info": {"start": 0, "end": 2242}}}, "id_map": {"1637c45e-7aaa-49e8-810c-cfbe7840d1e4": 1841988046985287133}, "embeddings_dict": {"1637c45e-7aaa-49e8-810c-cfbe7840d1e4": [-0.019297737628221512, 0.013736236840486526, 0.0009271959424950182, -0.017086537554860115, -0.003815993433818221, -0.008945304900407791, -0.006975328084081411, 0.01991419307887554, -0.014714524149894714, -0.04658259451389313, 0.00941434781998396, 0.03685331717133522, -0.03355662152171135, 0.00782630406320095, 0.0033704033121466637, 0.013883649371564388, 0.016416477039456367, 0.010379234328866005, 0.015210368670523167, -0.020383235067129135, -0.0037489873357117176, -0.01569281332194805, -0.023023271933197975, -0.022701643407344818, -0.007028932683169842, 0.008878299035131931, 0.023760339245200157, -0.036478083580732346, -0.009581862017512321, -0.002681916346773505, -0.007209849078208208, 0.012503325007855892, -0.03004550375044346, 0.005655309185385704, -0.0033972058445215225, 0.00324811739847064, 0.02274184674024582, -0.0025512545835226774, 0.02476543001830578, -0.01592063345015049, 0.024001561105251312, 0.04116850718855858, 0.012275504879653454, -0.017274154350161552, -0.004382194485515356, -0.009333940222859383, 0.013005870394408703, -0.011779660359025002, -0.01370273344218731, 0.014433098956942558, 0.03205568715929985, 0.05121941119432449, -0.03232371062040329, 0.006080797407776117, -0.025167465209960938, 0.012523427605628967, 0.002683591563254595, 0.011478133499622345, 0.02779410220682621, -0.022460421547293663, 0.0009112820262089372, 0.0011022492544725537, -0.007564981002360582, 0.01833285018801689, 0.010901881381869316, -0.013293996453285217, -0.01622886024415493, 0.02827654592692852, 0.011203408241271973, -0.004797631874680519, 0.010801372118294239, 0.0052666738629341125, 0.004593263380229473, -0.00047699917922727764, 0.011397725902497768, 0.012456420809030533, -0.010372533462941647, -0.0018594174180179834, -0.023385105654597282, 0.012717744335532188, 0.0078062028624117374, -0.015558800660073757, 0.0076386877335608006, 0.019284335896372795, 0.013990859501063824, -0.009662269614636898, 0.0033335499465465546, -0.024698423221707344, -0.005283425562083721, -0.00835565198212862, -0.0027338459622114897, -0.009916892275214195, 0.008328849449753761, -0.008710783906280994, 0.014781530946493149, -0.006479483097791672, -0.012329109944403172, -0.012737846933305264, -0.00010202715202467516, -0.02950945682823658, -0.01852046698331833, 0.004459251184016466, -0.05341720953583717, -0.014660920016467571, -0.022366613149642944, 0.00482778437435627, 0.021441930904984474, 0.015170165337622166, 0.010513246059417725, 0.0066101448610424995, -0.00710263941437006, 0.01755557954311371, -0.003638427471742034, -0.048833996057510376, 0.010104509070515633, -0.002315058372914791, 0.028115730732679367, -0.0105534503236413, 0.027767298743128777, -0.018627677112817764, 0.03436069190502167, 0.003939954563975334, 0.02590453252196312, -0.0025830825325101614, 0.01750197447836399, 0.007283555809408426, 0.005568201187998056, -0.012523427605628967, -0.03899750858545303, 0.005002000369131565, -0.008891700766980648, 0.013267193920910358, 0.0011826565023511648, 0.009213329292833805, -0.02862497605383396, 0.02744567021727562, -0.0005460991524159908, 0.0025294777005910873, -0.013354302383959293, 0.0021291165612637997, 0.020088408142328262, 0.036880120635032654, -0.018614275380969048, 0.0020453589968383312, -0.015451590530574322, 0.012134792283177376, -0.009910192340612411, 0.01550519559532404, 2.104408122249879e-05, -0.015210368670523167, 0.012429619207978249, -0.019056515768170357, 0.0008702408522367477, 0.025582902133464813, 0.013119780458509922, 0.005008700769394636, 0.026239560917019844, 0.03149283304810524, -0.03433389216661453, -0.011397725902497768, -0.010426138527691364, 0.025998340919613838, 0.0026953176129609346, 0.009461252018809319, 0.006445980165153742, 0.020128611475229263, 0.025958135724067688, -0.014848536811769009, -0.020115209743380547, -0.009441149421036243, -0.01062045618891716, 0.04666300117969513, -0.024819033220410347, 0.016550490632653236, -0.012208499014377594, 0.013964056968688965, 0.03519156947731972, -0.023157283663749695, -0.01715354435145855, -0.02392115257680416, 0.011055994778871536, 0.009246832691133022, 0.005136012099683285, -0.006821213755756617, -0.02538188546895981, -0.011263714171946049, 0.016161855310201645, -0.017837004736065865, 0.019820384681224823, -0.0217769593000412, 0.009930294007062912, 0.02652098797261715, -0.0011541788699105382, -0.02343870885670185, -0.6359676718711853, -0.007618585601449013, 0.012865157797932625, -0.00015369508764706552, -0.0041979276575148106, -0.00020729990501422435, -0.007176346145570278, -0.008985509164631367, -0.023934554308652878, 0.021361522376537323, -0.02075846865773201, -0.023465512320399284, -0.01900291070342064, -0.0011005740379914641, 2.805877556966152e-05, -0.0046703205443918705, -0.029831085354089737, -0.020436840131878853, -0.00470717390999198, -0.0038193438667804003, -0.008543268777430058, 0.005772569682449102, -0.026722004637122154, 0.008275245316326618, -0.03631727024912834, 0.010660659521818161, 0.011109599843621254, 0.0011692552361637354, 0.015210368670523167, 0.008791191503405571, -0.00848966371268034, -0.0020503846462816, 0.008563370443880558, 0.010854977183043957, 0.040659260004758835, -0.005340380594134331, -0.025917932391166687, 0.0094076469540596, 0.01486193761229515, 0.009273634292185307, -0.013307398185133934, -0.020088408142328262, -0.004546359181404114, -0.0008953681099228561, -0.012262104079127312, 0.018319448456168175, 0.011947175487875938, 0.007209849078208208, -0.013662530109286308, -0.024604614824056625, -0.007229950744658709, 0.011062695644795895, 0.011726055294275284, -0.016831915825605392, 9.443662565900013e-05, 0.0013803242472931743, 0.019244132563471794, -0.005802722182124853, 0.009575162082910538, -0.020825473591685295, 0.013320798985660076, -0.004911541938781738, -0.02480563335120678, -0.006311967968940735, -0.015384584665298462, 0.010479743592441082, 0.008395855315029621, 0.0032799451146274805, -0.007973717525601387, -0.01308627799153328, 0.003378779161721468, 0.02937544323503971, 0.010426138527691364, -0.008811293169856071, -0.009682371281087399, -0.00038800679612904787, 0.010921983048319817, -0.00266684009693563, -0.0024256182368844748, 0.0008296184241771698, 0.030420737341046333, -0.019203929230570793, 0.002730495762079954, -0.015666009858250618, 0.041758157312870026, -0.004958446137607098, 0.015679411590099335, 0.006901621352881193, -0.014352692291140556, 0.012985768727958202, 0.011632246896624565, 0.011029193177819252, -0.026051944121718407, -0.05676750838756561, -0.012711044400930405, 0.012034283019602299, -0.014165074564516544, 0.012201798148453236, 0.030179517343640327, -0.018306048586964607, 0.010332330130040646, -0.013421308249235153, 0.029804281890392303, 0.02278205007314682, 0.014500104822218418, 0.013843446038663387, 0.010519946925342083, 0.005956836044788361, 0.018748287111520767, -0.010781270451843739, 0.013736236840486526, 0.017394766211509705, -0.0025663310661911964, -0.003983508329838514, -0.008382454514503479, -0.019163724035024643, -0.016952525824308395, 0.004978548269718885, 0.011585342697799206, -0.016778310760855675, 0.016590693965554237, 0.0055413986556231976, 0.02287585847079754, 0.0035278676077723503, 0.0016315968241542578, 0.009715874679386616, 3.677479617181234e-05, -0.011994079686701298, 0.013910451903939247, 0.01022512000054121, -0.006915022619068623, -0.02841055765748024, 0.021522337570786476, -0.022219199687242508, 0.029804281890392303, 0.021080097183585167, 0.03594203665852547, -0.005229820962995291, 0.0017840355867519975, 0.005641907919198275, -0.023934554308652878, 0.0006327882292680442, 0.013736236840486526, -0.007906711660325527, -0.037710994482040405, -0.025837525725364685, -0.005370533559471369, -0.006727405358105898, -0.011076097376644611, -0.00947465281933546, -0.0068480162881314754, -0.012757948599755764, -0.023813944309949875, 0.01303937379270792, -0.0019280984997749329, -0.017126740887761116, -0.007564981002360582, -0.023639727383852005, -0.002638362580910325, -0.031466033309698105, 0.009293736889958382, 0.019324539229273796, -0.021535739302635193, 0.01376303844153881, 0.007049034349620342, -0.02642717957496643, 0.009159724228084087, 0.017140142619609833, -0.023210888728499413, -0.03210929036140442, 0.0018443410517647862, -0.03363702818751335, 0.005089107900857925, 0.021736755967140198, -0.009206628426909447, 0.004968497436493635, -0.0032749196980148554, -0.0049215927720069885, 0.01248992420732975, -0.017957616597414017, -0.005424138158559799, 0.02397475764155388, 0.011143103241920471, -0.01130391750484705, 0.02630656771361828, 0.015009351074695587, 0.03690692037343979, 0.014486704021692276, -0.022929463535547256, -0.005595003720372915, 0.014165074564516544, 0.014165074564516544, -0.021294517442584038, 0.00358482263982296, -0.0015461641596630216, 0.013247092254459858, 0.018493665382266045, -0.023411907255649567, 0.006141102872788906, 0.016068046912550926, -0.009199928492307663, 0.015719614923000336, 0.011793061159551144, -0.01688551902770996, -0.011685851961374283, -0.022929463535547256, 0.014285685494542122, -0.010580251924693584, -0.005182916298508644, 0.0011994079686701298, 0.01908331736922264, -0.0033436010126024485, -0.027606485411524773, -0.021080097183585167, -0.007236651610583067, 0.040525246411561966, -0.005591653287410736, 0.014526907354593277, -0.010988988913595676, 0.011679151095449924, 0.00535378186032176, -0.005772569682449102, 0.03323499113321304, -0.018761688843369484, 0.00815463438630104, 0.002294956473633647, -0.005976938176900148, 0.021602744236588478, -0.009702472947537899, -0.01803802326321602, 0.017582383006811142, 0.013682631775736809, -0.002310032956302166, 0.026628196239471436, -0.007176346145570278, 0.00023724323546048254, 0.03864907845854759, -0.012040983885526657, 0.017997819930315018, -0.01865447871387005, -0.007015531416982412, 0.03095678612589836, -0.012208499014377594, -0.019364742562174797, 0.043205488473176956, -0.029000209644436836, 0.026949826627969742, -0.00268861697986722, -0.01803802326321602, -0.015062956139445305, -0.016081446781754494, 0.030769169330596924, -0.025060255080461502, 0.013749637641012669, -0.01000400073826313, -0.028464162722229958, 0.00826854445040226, 0.006770959589630365, 0.03409266844391823, 0.012563630938529968, 0.006342120934277773, 0.008650478906929493, 0.007350561674684286, 0.007075836881995201, 0.03618325665593147, -0.016510285437107086, 0.009702472947537899, -0.006435929331928492, -0.011136402375996113, 0.003491014242172241, -0.010285425931215286, -0.006811162922531366, 0.007451070472598076, -0.034548308700323105, 0.017930813133716583, 0.013776440173387527, 0.007216549478471279, 0.022447019815444946, 0.026681801304221153, 0.03361022472381592, -0.0328061543405056, -0.03690692037343979, 0.021133702248334885, -0.0023904400877654552, -0.011310618370771408, -0.008630377240478992, -0.04685061797499657, 0.007142842747271061, 0.00477082934230566, -0.013119780458509922, -0.004891440272331238, 0.014553709886968136, -0.012094588950276375, 0.01570621319115162, -0.024430399760603905, 0.01781020313501358, 0.029884690418839455, 0.008208238519728184, -0.01692572422325611, -0.016550490632653236, 0.009193227626383305, 0.010513246059417725, -0.02010180987417698, -0.012717744335532188, 0.030635157600045204, -0.024242782965302467, -0.038729485124349594, 0.012121391482651234, 0.009287036024034023, 0.008777789771556854, -0.006482833530753851, -0.00324811739847064, 0.030018702149391174, 0.026628196239471436, 0.03371743485331535, 0.0018393155187368393, 0.005568201187998056, 0.020999690517783165, 0.021267713978886604, 0.00782630406320095, 0.009220030158758163, -0.03433389216661453, -0.00782630406320095, 0.014178476296365261, 0.04454560950398445, 0.025167465209960938, -0.020986288785934448, -0.006982028484344482, -0.03320818766951561, -0.02827654592692852, -0.028383754193782806, -0.009146323427557945, 0.006888220086693764, 0.02582412399351597, -0.026614796370267868, -0.013481613248586655, 0.02128111571073532, 0.023988159373402596, 0.016898920759558678, 0.0032698942814022303, 0.019150324165821075, -0.015116560272872448, -0.031171206384897232, -0.0031392325181514025, 0.0005054767243564129, -0.02062445692718029, 0.020115209743380547, 0.032216500490903854, 0.01969977281987667, -0.01645668037235737, 0.02779410220682621, 0.009923593141138554, -0.022942865267395973, -0.01554539892822504, -0.014808332547545433, 0.005799372214823961, 0.002067136112600565, 0.010265324264764786, -0.000992526882328093, 0.03101039119064808, 0.0019934293814003468, 0.012597134336829185, 0.01588043011724949, -0.012563630938529968, 0.03363702818751335, 0.010446240194141865, 0.003514466341584921, 0.007484573870897293, -0.013468212448060513, -0.03291336074471474, 0.011015791445970535, 0.02867858111858368, 0.007116040680557489, -0.02617255598306656, 0.00899220909923315, 2.593866338429507e-05, -0.024966446682810783, -0.012174995616078377, 0.01050654612481594, -0.0025562800001353025, 0.011659049428999424, -0.002656789030879736, -0.009715874679386616, -0.022808853536844254, -0.013682631775736809, -0.05229150503873825, -0.003939954563975334, -0.019512156024575233, -0.012288905680179596, 0.014982548542320728, -0.0033821293618530035, 0.029134223237633705, -0.03157324343919754, -0.011270414106547832, -0.0023787140380591154, -0.04025722295045853, -0.04719904810190201, -0.005095808766782284, 0.02401496097445488, -0.0018644428346306086, 0.013428009115159512, 0.0016324344323948026, -0.0028996861074119806, 0.023867547512054443, -0.015813423320651054, 0.011819863691926003, -0.003728885669261217, -0.026641597971320152, -0.0033151234965771437, -0.01235591247677803, -0.028517767786979675, -0.014969147741794586, -0.008663879707455635, -0.0003105310897808522, 0.005283425562083721, -0.003990209195762873, -0.023907752707600594, 0.02189757116138935, -0.0076386877335608006, 0.010593653656542301, 0.018024621531367302, 0.003966757096350193, 0.012731146067380905, -0.04856597259640694, -0.01253682840615511, -0.009025712497532368, -0.023076876997947693, -0.007109339814633131, -0.0015369508182629943, 0.0007693130173720419, 0.03532557934522629, 0.016898920759558678, -0.015196967869997025, -0.0007755947881378233, -0.003541268641129136, -0.0017354561714455485, 0.02740546688437462, 0.015934033319354057, 0.0017388064879924059, -0.006660399492830038, 0.022621236741542816, 0.0005800209473818541, 0.030688762664794922, -0.033931855112314224, -0.01130391750484705, -0.03543278947472572, 0.027874508872628212, 0.01196057628840208, -0.019324539229273796, 0.030795972794294357, 0.004010310862213373, 0.0006813675863668323, -0.0187348872423172, 0.01693912409245968, -0.007591783534735441, 0.03808622807264328, -0.017247352749109268, -0.012188397347927094, -0.033797841519117355, -0.008697383105754852, -0.02766009047627449, 0.018131831660866737, -0.033931855112314224, -0.0007446045055985451, 0.017354562878608704, 0.019471952691674232, -0.015103159472346306, -0.0011106249876320362, 0.011913672089576721, -0.018399856984615326, -0.010466341860592365, 0.01550519559532404, 0.0297238752245903, 0.03486993908882141, -0.006389025133103132, 0.02436339296400547, -0.03060835599899292, -0.03575441986322403, 0.015049554407596588, -0.007551579736173153, 0.010164815001189709, 0.011652348563075066, 0.0344679020345211, 0.01592063345015049, 0.040525246411561966, -0.0011290516704320908, 0.017930813133716583, 0.021388325840234756, -0.019029712304472923, -0.008543268777430058, 0.0028209539595991373, -0.008998909965157509, -0.00941434781998396, -0.006874818820506334, 0.0144062964245677, -0.0021307917777448893, 0.025515897199511528, -0.0036518287379294634, -0.000885317160282284, 0.019203929230570793, -0.00030592441908083856, -0.01134412083774805, -0.019324539229273796, -0.0014925593277439475, -0.012248702347278595, 0.008911802433431149, -0.0038729486986994743, 0.027325060218572617, -0.006559890229254961, -0.01715354435145855, -0.009682371281087399, 0.005638557486236095, 0.003648478304967284, 0.008415957912802696, 0.01815863512456417, -0.005052254535257816, -0.002273179590702057, 0.0069485255517065525, 0.014674320816993713, -0.03891710191965103, 0.006995429750531912, -0.0453764833509922, 0.0026417127810418606, 0.029589863494038582, -0.001106437062844634, 0.0077123939990997314, 0.014781530946493149, -0.009869988076388836, 0.024752028286457062, -0.017274154350161552, 0.008348951116204262, 0.00958856288343668, -0.020249223336577415, -0.02036983333528042, -0.003772439667955041, -0.02867858111858368, -0.018359651789069176, -0.001020166790112853, -0.002392115304246545, 0.005896530579775572, 0.01759578473865986, 0.02216559462249279, -0.035030752420425415, -0.029134223237633705, 0.032296907156705856, 0.022406816482543945, 0.03087637946009636, -0.016724705696105957, 0.011491534300148487, 0.005062305834144354, -0.0005955161177553236, -0.007464471738785505, 0.01829264685511589, 0.014794931747019291, 0.007605184335261583, 0.017528777942061424, 0.0004816058499272913, 0.011511635966598988, -0.021173905581235886, 0.030849575996398926, 0.0022597783245146275, -0.0029549659229815006, -0.04181176424026489, 0.0202760249376297, -0.0020168814808130264, 0.00886489823460579, -0.009421047754585743, -0.030849575996398926, -0.013079577125608921, -0.012107989750802517, -0.0030236472375690937, 0.018627677112817764, 0.00423478102311492, -0.011846666224300861, 0.00886489823460579, 0.014017662033438683, 0.008710783906280994, 0.00269866781309247, -0.03545959293842316, -0.00525327306240797, 0.03039393573999405, -0.010044204071164131, -0.02428298629820347, 0.010379234328866005, 0.004147673491388559, 0.031198007985949516, 0.0055045452900230885, -0.0004443337384145707, -0.004372143652290106, 0.011417827568948269, 0.01123691163957119, 0.010848276317119598, -0.016657698899507523, 0.02546229213476181, -0.03245772048830986, -0.0020872377790510654, 0.0004405646468512714, -0.013280595652759075, -0.006110949907451868, -0.019404945895075798, -0.007290256209671497, -0.009910192340612411, 0.0002466659643687308, 0.00534373102709651, 0.019163724035024643, 0.0029063865076750517, -0.011772959493100643, 0.009890090674161911, -0.011096199043095112, -0.027499275282025337, -0.009394245222210884, -0.013180086389183998, 0.008757688105106354, -0.042857058346271515, -0.01632266864180565, 0.0027070436626672745, -0.00017892704636324197, 0.012858457863330841, -0.01645668037235737, -0.022902661934494972, -0.014191877096891403, 0.0055413986556231976, -0.021602744236588478, 0.014607314951717854, -0.0012773025082424283, 0.003568071173503995, 0.013897051103413105, 0.007819604128599167, -0.005152763798832893, 0.0011843316024169326, 0.008831394836306572, -0.018667880445718765, -0.01991419307887554, -0.005256623029708862, -0.004991949535906315, 0.004388894885778427, -0.0041007692925632, 0.007993819192051888, 0.022500624880194664, -0.00593673437833786, 0.005105859600007534, 0.0039801583625376225, 0.004764128942042589, 0.03540598601102829, -0.01530417799949646, -0.006060695741325617, 0.005022102035582066, -0.0014866963028907776, -0.01015811413526535, -0.018198838457465172, -0.012208499014377594, -0.015196967869997025, -0.048753589391708374, 0.0072634536772966385, -0.0023736886214464903, 0.015129962004721165, -0.0012245351681485772, 0.012288905680179596, -0.025060255080461502, -0.002745572244748473, -0.020946085453033447, 0.021254312247037888, -0.017971018329262733, -0.002236326225101948, 0.006851366721093655, 0.03320818766951561, 0.027284855023026466, -0.0036116251721978188, -0.032698944211006165, -0.02185736782848835, -0.009166425094008446, -0.012999170459806919, -0.03966756910085678, -0.015076356939971447, -0.025716915726661682, 0.045322880148887634, 0.0028025272767990828, -0.016697902232408524, -0.00475072767585516, -0.004663619678467512, -0.05907251685857773, -0.0064526810310781, -0.000531441590283066, 0.006375623866915703, 0.019445151090621948, 0.027418868616223335, 0.005501195322722197, 0.013508415780961514, -0.009307137690484524, 0.01198737882077694, -0.012965667061507702, 0.00011788873962359503, -0.006717354524880648, 0.0005984476301819086, 0.0006139427423477173, -0.014017662033438683, -0.015518596395850182, 0.0064995852299034595, 0.0001897108304547146, -0.04108809679746628, -0.00958856288343668, 0.01742156781256199, -0.022902661934494972, -0.024081967771053314, 0.01550519559532404, 0.01684531569480896, 0.002926488406956196, -0.0008702408522367477, 0.01185336709022522, 0.005249922629445791, -0.010613755322992802, 0.0012119716266170144, -0.019887389615178108, -0.015451590530574322, -0.0012387740425765514, 0.0003193256270606071, 0.01657729223370552, -0.0011047619627788663, -0.004630116745829582, -0.017582383006811142, 0.013247092254459858, -0.01692572422325611, 0.02819613739848137, -0.015223770402371883, 0.006358872167766094, 0.02295626699924469, -0.00530017726123333, -4.9757214583223686e-05, -0.0035982239060103893, 0.0006332069751806557, -0.004043813794851303, 0.022621236741542816, 0.016349472105503082, -0.013374404050409794, -0.022487225010991096, -0.009555060416460037, -0.005943434778600931, -0.018989508971571922, -0.004094068426638842, -0.011102898977696896, -0.0032682190649211407, -0.040042802691459656, 0.032966967672109604, 0.01719374768435955, -0.0373893640935421, -0.00415772432461381, -0.009943694807589054, 0.0272714551538229, 0.005002000369131565, -0.0017136792885139585, 0.010526647791266441, -0.010560150258243084, 0.021267713978886604, 0.0059903389774262905, -0.007330460008233786, -0.0010293801315128803, 0.014433098956942558, 0.025609705597162247, -0.014392895624041557, -0.011585342697799206, 0.19726575911045074, -0.04293746501207352, 0.009514856152236462, 0.0225676316767931, 0.002504350384697318, 0.0025345031172037125, 0.037710994482040405, 0.015223770402371883, -0.015076356939971447, 0.016764909029006958, -2.9262790121720172e-05, -0.0016374598490074277, -0.02590453252196312, 0.009856587275862694, 0.024068566039204597, -0.018976107239723206, -0.028839396312832832, -0.04309827834367752, -0.014915542677044868, 0.00956846121698618, -0.031332019716501236, 0.009354041889309883, -0.005404036492109299, -0.022634636610746384, 0.019860588014125824, -0.010084407404065132, -0.006975328084081411, -0.004080667160451412, 0.017166946083307266, 0.015773219987750053, -0.007645388133823872, -0.0021944474428892136, 0.0012881909497082233, 0.004566460847854614, -0.006278465036302805, -0.009025712497532368, 0.007558280136436224, 0.00647613313049078, 0.0031827865168452263, 0.021790361031889915, 0.009702472947537899, 0.008482963778078556, 0.01746177114546299, -0.028035324066877365, 0.010781270451843739, 0.0311444029211998, -0.01240281667560339, -0.0075381784699857235, 0.011886869557201862, 0.0036886821035295725, -0.013528517447412014, 0.021401725709438324, 0.014794931747019291, 0.0422138012945652, 0.004003610461950302, 0.0021441930439323187, -0.023076876997947693, 0.010513246059417725, 0.0035178165417164564, -0.004583212547004223, -0.0407128632068634, -0.0036987329367548227, 0.0076386877335608006, 0.027284855023026466, 0.007357262074947357, 0.014459901489317417, 0.005216419696807861, -0.002613235265016556, 0.006968627218157053, -0.01649688556790352, -0.011880169622600079, -0.01139102503657341, -0.016697902232408524, -0.004084017593413591, -0.019458550959825516, -0.036478083580732346, 0.020651258528232574, 0.03189487010240555, 0.011759558692574501, 0.031600043177604675, -0.00883809570223093, -0.025663310661911964, -0.007002130150794983, -0.014124871231615543, 0.0020168814808130264, -0.006975328084081411, -0.004888089839369059, -0.02603854425251484, -0.005688812118023634, -0.03210929036140442, 0.001333420048467815, -0.003822694066911936, -0.011243612505495548, 0.009126221761107445, 0.005712264217436314, -0.0019398245494812727, 0.003718834836035967, -0.01886889897286892, 0.00765208899974823, -0.02185736782848835, -0.03679971396923065, 0.03328859806060791, 0.05580262467265129, 0.014031062833964825, 0.01013801246881485, -0.006439279764890671, -0.011163204908370972, 0.003832744900137186, -0.015893829986453056, -0.013910451903939247, -0.0014062890550121665, -0.051567841321229935, 0.01842665858566761, -0.006757558323442936, -0.01763598807156086, -0.0019012960838153958, -0.006157854106277227, -0.009923593141138554, 0.031948477029800415, -0.00908601749688387, -0.011223509907722473, -0.01317338552325964, 0.011357522569596767, -0.008362352848052979, -0.0014799956697970629, -0.028946606442332268, -0.007002130150794983, 0.004469302482903004, -0.027472473680973053, 0.004566460847854614, 0.0027706993278115988, -0.03184126690030098, 0.024162374436855316, 0.004563110880553722, 0.01319348718971014, -0.02484583668410778, -0.019150324165821075, 0.0011215134290978312, -0.010044204071164131, -0.01062045618891716, -0.01180646289139986, -0.009548359550535679, -0.02771369367837906, -0.020262623205780983, 0.028571370989084244, -0.006402426399290562, -0.005316928494721651, 0.029563061892986298, 0.01719374768435955, -0.0064057763665914536, -0.0019414997659623623, -0.018667880445718765, 0.009065915830433369, -0.004104119259864092, 0.019739976152777672, 0.01657729223370552, -0.0179844181984663, -0.005725665483623743, 0.004757428076118231, 0.009146323427557945, -0.03237731382250786, -0.02216559462249279, 0.023318098857998848, -0.01833285018801689, 0.004214679356664419, -0.00828864611685276, -0.16906961798667908, -0.010647258721292019, 0.0006935124401934445, -0.03275254741311073, 0.020115209743380547, 0.011913672089576721, 0.006241611670702696, -0.006757558323442936, -0.03768419101834297, -0.0028377054259181023, 0.0068145133554935455, -0.026681801304221153, -0.010868377983570099, -0.0064694322645664215, -0.015491794794797897, 0.0047038234770298, 0.019994599744677544, -0.0011097873793914914, 0.01134412083774805, 0.011243612505495548, 0.04178496077656746, -0.028464162722229958, -0.017796801403164864, 0.001036080764606595, 0.0061545041389763355, 0.004532957915216684, -0.0029750678222626448, 0.03411947190761566, -0.003929903730750084, -0.037442971020936966, -0.007209849078208208, -0.018145233392715454, 0.021039893850684166, -0.007893310859799385, 0.013990859501063824, 0.022004781290888786, 0.030983589589595795, 0.0025596304330974817, -0.01547839306294918, 0.004107469692826271, 0.016202058643102646, 0.02559630386531353, 0.003420657943934202, 0.006422528065741062, -0.015531998127698898, 0.011029193177819252, 0.02665499970316887, -0.020785270258784294, -0.0008844796102494001, -0.007765999063849449, 0.018145233392715454, -0.014875339344143867, 0.015170165337622166, -0.020785270258784294, -0.014433098956942558, 0.007384064607322216, 0.00601379107683897, 0.0004317701095715165, -0.007095938548445702, -0.01198737882077694, -0.00355131970718503, 0.0030085707549005747, -0.007564981002360582, 0.0013970757136121392, 0.01005090493708849, -0.014191877096891403, -0.009662269614636898, 0.013421308249235153, -0.02409536950290203, -0.010037503205239773, -0.019605964422225952, -0.0029951694887131453, -0.003970107529312372, 0.002244702074676752, 0.01842665858566761, 0.01068746205419302, -0.004874688573181629, 0.01582682505249977, 0.025301476940512657, -0.0019800281152129173, -0.018922504037618637, 0.025046855211257935, 0.012047684751451015, -0.006151153706014156, -0.003194512566551566, -0.027686892077326775, -0.013468212448060513, 0.011618846096098423, -0.01742156781256199, -0.01084157545119524, 0.022044984623789787, -0.020946085453033447, -0.002822629176080227, -0.005213069263845682, 0.0004744864709209651, -7.491064752684906e-05, 0.008261843584477901, -0.009173125959932804, -0.004543008748441935, -0.009199928492307663, -0.004901491105556488, 0.017354562878608704, -0.004405646584928036, -0.00965556874871254, 0.031251613050699234, -0.004553060047328472, -0.01537118386477232, 0.004308487754315138, 0.024658219888806343, -0.028732186183333397, 0.010419437661767006, -0.023157283663749695, 0.0025713564828038216, 0.00591663271188736, 0.013843446038663387, 0.0056754108518362045, -0.015759818255901337, -0.02224600315093994, 0.02445720136165619, 0.008730885572731495, 0.06003740429878235, 0.002640037564560771, -0.005491144489496946, 0.007973717525601387, -0.00033733347663655877, -0.00768559193238616, -0.11514316499233246, -0.019552359357476234, -0.003507765708491206, 0.017702993005514145, -0.0249396450817585, 0.028866197913885117, -0.0045698112808167934, 0.035727616399526596, -0.020999690517783165, 0.03377103805541992, -0.030099108815193176, 0.003378779161721468, 0.006358872167766094, -0.013461511582136154, 0.023505715653300285, 0.005280075129121542, 0.03047434240579605, -0.012871858663856983, -0.01931113749742508, 0.037576980888843536, -0.0029599913395941257, -0.0082015385851264, -0.006740806624293327, -0.023720135912299156, 0.0050857579335570335, 0.029831085354089737, -0.023894350975751877, 0.02910741977393627, 0.016778310760855675, -0.006734106224030256, 0.009742677211761475, -0.03216289356350899, -0.01728755608201027, -0.015813423320651054, 0.0297238752245903, 0.012195097282528877, -0.0009087693179026246, -0.006067396141588688, 0.022527428343892097, -0.012898661196231842, 0.0017522077541798353, 0.0028377054259181023, 0.0010813098633661866, -0.005115910433232784, 0.0032464421819895506, -0.023559320718050003, -0.024256182834506035, 0.02603854425251484, 0.007410867139697075, -0.021602744236588478, -0.01803802326321602, -0.029402246698737144, -0.04636817425489426, 0.014218679629266262, 0.019096719101071358, 0.01860087364912033, 0.0051963175646960735, 0.012724445201456547, -0.009809683077037334, 0.013582122512161732, -0.010064305737614632, 0.005035503301769495, -0.03433389216661453, 0.017220549285411835, 0.008007220923900604, 0.01194047462195158, 0.001009278348647058, -0.03184126690030098, 0.00958856288343668, -0.026628196239471436, 0.00831544864922762, 0.015773219987750053, -0.00424483185634017, 0.005755817983299494, -0.01742156781256199, 0.01178636122494936, -0.021884169429540634, -0.0344679020345211, 0.0007328784558922052, -0.006425878498703241, -0.013515116646885872, -0.01363572757691145, -0.017930813133716583, -0.0022061734925955534, -0.014513506554067135, 0.015210368670523167, -0.0058496263809502125, -0.019686371088027954, -0.017863808199763298, -0.01719374768435955, 0.01882869563996792, 0.03425348177552223, 0.023237692192196846, -0.014526907354593277, 0.00542078772559762, 0.01127711497247219, -0.025797322392463684, -0.016818514093756676, 0.02322429046034813, 0.013032672926783562, -0.01693912409245968, 0.014714524149894714, -0.04561770707368851, 0.02792811393737793, 0.011210109107196331, -0.009829784743487835, 0.0052666738629341125, -0.03168044984340668, 0.01475472841411829, -0.013421308249235153, 0.00417782599106431, 0.03178765997290611, -0.011618846096098423, 0.023988159373402596, 0.004559760447591543, 0.006268414203077555, -0.053015172481536865, -0.014942345209419727, 0.010325629264116287, -0.02440359629690647, 0.01943174935877323, 0.029134223237633705, 0.01693912409245968, -0.008255142718553543, 0.009729275479912758, 0.025542698800563812, 0.03294016420841217, -0.021133702248334885, -0.024993250146508217, 0.017528777942061424, -0.01143792923539877, -0.00026069534942507744, -0.006412477232515812, -0.017997819930315018, 0.0028343552257865667, 0.014044464565813541, -0.013709434308111668, -0.017837004736065865, 0.011813163757324219, 0.010741067118942738, 0.003913152031600475, 0.038890302181243896, -0.026400376111268997, -0.048405155539512634, 0.003966757096350193, 0.0017170296050608158, -0.006797761656343937, -0.0030236472375690937, 0.0023703384213149548, -0.03259173408150673, 0.020691461861133575, -0.005940084811300039, 0.0545429103076458, 0.02291606180369854, -0.02212539128959179, -0.03607604652643204, -0.017743196338415146, 0.024443799629807472, 0.020088408142328262, 0.005042203702032566, 0.005122611299157143, 0.023371703922748566, 0.01684531569480896, 0.0019716524984687567, 0.021254312247037888, 0.007471172604709864, -0.008938604965806007, -0.023894350975751877, 0.0005209718947298825, 0.0030320228543132544, -0.004274984821677208, -0.008047424256801605, 0.011612145230174065, 0.02176355943083763, 0.01622886024415493, 0.015424787998199463, 0.011310618370771408, -0.004928293637931347, 0.009508156217634678, 0.00384279596619308, -0.022581033408641815, 0.01772979646921158, 0.011705953627824783, 0.0012136467266827822, 0.010285425931215286, 0.00771909486502409, 0.01931113749742508, 0.009313838556408882, -0.01502275187522173, 0.011210109107196331, -0.002603184198960662, -0.010218420065939426, -0.008965406566858292, 0.011933773756027222, -0.002886284841224551, 0.013488314114511013, 0.0007077511982060969, -0.002077186945825815, 0.010111209936439991, -0.010533347725868225, 0.02586432732641697, 0.01319348718971014, 0.020557450130581856, -0.01755557954311371, -0.002078862162306905, -0.021696552634239197, -0.02542208880186081, -0.004288386087864637, -0.03704093396663666, 0.005802722182124853, 0.020503845065832138, 0.01979358121752739, 0.0066101448610424995, -0.017823604866862297, -0.0010494819143787026, 0.018507065251469612, -0.012891960330307484, 0.028115730732679367, 0.0055749015882611275, -0.013501714915037155, -0.036478083580732346, 0.02607874758541584, 0.03637087345123291, 0.0047038234770298, 0.06539788842201233, 0.00824844278395176, 0.010164815001189709, 0.011625546030700207, 0.025489093735814095, -0.03390505164861679, 0.040310829877853394, 0.011886869557201862, -0.015223770402371883, -0.0093674436211586, -0.017086537554860115, -0.015156764537096024, -0.03800582140684128, 1.0044361260952428e-05, 0.012731146067380905, 0.013354302383959293, 0.014071266166865826, 0.0686141774058342, 0.015062956139445305, -0.018721485510468483, 0.022929463535547256, -0.005407386925071478, 0.012818253599107265, 0.016470082104206085, 0.007665489800274372, -0.0021240911446511745, -0.00477082934230566, 0.007598483934998512, -0.0007508863345719874, 0.003256493015214801, -0.03143922984600067, -0.01767619140446186, -0.015974238514900208, -0.001592230866663158, 0.034146275371313095, -0.029536258429288864, -0.01495574600994587, 0.022969666868448257, 0.004003610461950302, 0.0202760249376297, -0.0059903389774262905, -0.003893050365149975, 0.008811293169856071, 0.028115730732679367, -0.008683981373906136, 0.00424483185634017, -0.001953225815668702, 0.04508165642619133, 0.03267214074730873, -0.02867858111858368, -0.009642167948186398, 0.0009221705258823931, 0.005765868816524744, 0.02239341475069523, -0.031466033309698105, 0.0026735407300293446, -0.004047164227813482, -0.0017237301217392087, 0.021977977827191353, 0.0034675621427595615, -0.034012261778116226, -0.006512986030429602, -0.00883809570223093, -0.018976107239723206, -0.009682371281087399, -0.02660139463841915]}, "__type__": "simple_dict"}}}, "vector_store": {"simple_vector_store_data_dict": {"embedding_dict": {"1637c45e-7aaa-49e8-810c-cfbe7840d1e4": [-0.019297737628221512, 0.013736236840486526, 0.0009271959424950182, -0.017086537554860115, -0.003815993433818221, -0.008945304900407791, -0.006975328084081411, 0.01991419307887554, -0.014714524149894714, -0.04658259451389313, 0.00941434781998396, 0.03685331717133522, -0.03355662152171135, 0.00782630406320095, 0.0033704033121466637, 0.013883649371564388, 0.016416477039456367, 0.010379234328866005, 0.015210368670523167, -0.020383235067129135, -0.0037489873357117176, -0.01569281332194805, -0.023023271933197975, -0.022701643407344818, -0.007028932683169842, 0.008878299035131931, 0.023760339245200157, -0.036478083580732346, -0.009581862017512321, -0.002681916346773505, -0.007209849078208208, 0.012503325007855892, -0.03004550375044346, 0.005655309185385704, -0.0033972058445215225, 0.00324811739847064, 0.02274184674024582, -0.0025512545835226774, 0.02476543001830578, -0.01592063345015049, 0.024001561105251312, 0.04116850718855858, 0.012275504879653454, -0.017274154350161552, -0.004382194485515356, -0.009333940222859383, 0.013005870394408703, -0.011779660359025002, -0.01370273344218731, 0.014433098956942558, 0.03205568715929985, 0.05121941119432449, -0.03232371062040329, 0.006080797407776117, -0.025167465209960938, 0.012523427605628967, 0.002683591563254595, 0.011478133499622345, 0.02779410220682621, -0.022460421547293663, 0.0009112820262089372, 0.0011022492544725537, -0.007564981002360582, 0.01833285018801689, 0.010901881381869316, -0.013293996453285217, -0.01622886024415493, 0.02827654592692852, 0.011203408241271973, -0.004797631874680519, 0.010801372118294239, 0.0052666738629341125, 0.004593263380229473, -0.00047699917922727764, 0.011397725902497768, 0.012456420809030533, -0.010372533462941647, -0.0018594174180179834, -0.023385105654597282, 0.012717744335532188, 0.0078062028624117374, -0.015558800660073757, 0.0076386877335608006, 0.019284335896372795, 0.013990859501063824, -0.009662269614636898, 0.0033335499465465546, -0.024698423221707344, -0.005283425562083721, -0.00835565198212862, -0.0027338459622114897, -0.009916892275214195, 0.008328849449753761, -0.008710783906280994, 0.014781530946493149, -0.006479483097791672, -0.012329109944403172, -0.012737846933305264, -0.00010202715202467516, -0.02950945682823658, -0.01852046698331833, 0.004459251184016466, -0.05341720953583717, -0.014660920016467571, -0.022366613149642944, 0.00482778437435627, 0.021441930904984474, 0.015170165337622166, 0.010513246059417725, 0.0066101448610424995, -0.00710263941437006, 0.01755557954311371, -0.003638427471742034, -0.048833996057510376, 0.010104509070515633, -0.002315058372914791, 0.028115730732679367, -0.0105534503236413, 0.027767298743128777, -0.018627677112817764, 0.03436069190502167, 0.003939954563975334, 0.02590453252196312, -0.0025830825325101614, 0.01750197447836399, 0.007283555809408426, 0.005568201187998056, -0.012523427605628967, -0.03899750858545303, 0.005002000369131565, -0.008891700766980648, 0.013267193920910358, 0.0011826565023511648, 0.009213329292833805, -0.02862497605383396, 0.02744567021727562, -0.0005460991524159908, 0.0025294777005910873, -0.013354302383959293, 0.0021291165612637997, 0.020088408142328262, 0.036880120635032654, -0.018614275380969048, 0.0020453589968383312, -0.015451590530574322, 0.012134792283177376, -0.009910192340612411, 0.01550519559532404, 2.104408122249879e-05, -0.015210368670523167, 0.012429619207978249, -0.019056515768170357, 0.0008702408522367477, 0.025582902133464813, 0.013119780458509922, 0.005008700769394636, 0.026239560917019844, 0.03149283304810524, -0.03433389216661453, -0.011397725902497768, -0.010426138527691364, 0.025998340919613838, 0.0026953176129609346, 0.009461252018809319, 0.006445980165153742, 0.020128611475229263, 0.025958135724067688, -0.014848536811769009, -0.020115209743380547, -0.009441149421036243, -0.01062045618891716, 0.04666300117969513, -0.024819033220410347, 0.016550490632653236, -0.012208499014377594, 0.013964056968688965, 0.03519156947731972, -0.023157283663749695, -0.01715354435145855, -0.02392115257680416, 0.011055994778871536, 0.009246832691133022, 0.005136012099683285, -0.006821213755756617, -0.02538188546895981, -0.011263714171946049, 0.016161855310201645, -0.017837004736065865, 0.019820384681224823, -0.0217769593000412, 0.009930294007062912, 0.02652098797261715, -0.0011541788699105382, -0.02343870885670185, -0.6359676718711853, -0.007618585601449013, 0.012865157797932625, -0.00015369508764706552, -0.0041979276575148106, -0.00020729990501422435, -0.007176346145570278, -0.008985509164631367, -0.023934554308652878, 0.021361522376537323, -0.02075846865773201, -0.023465512320399284, -0.01900291070342064, -0.0011005740379914641, 2.805877556966152e-05, -0.0046703205443918705, -0.029831085354089737, -0.020436840131878853, -0.00470717390999198, -0.0038193438667804003, -0.008543268777430058, 0.005772569682449102, -0.026722004637122154, 0.008275245316326618, -0.03631727024912834, 0.010660659521818161, 0.011109599843621254, 0.0011692552361637354, 0.015210368670523167, 0.008791191503405571, -0.00848966371268034, -0.0020503846462816, 0.008563370443880558, 0.010854977183043957, 0.040659260004758835, -0.005340380594134331, -0.025917932391166687, 0.0094076469540596, 0.01486193761229515, 0.009273634292185307, -0.013307398185133934, -0.020088408142328262, -0.004546359181404114, -0.0008953681099228561, -0.012262104079127312, 0.018319448456168175, 0.011947175487875938, 0.007209849078208208, -0.013662530109286308, -0.024604614824056625, -0.007229950744658709, 0.011062695644795895, 0.011726055294275284, -0.016831915825605392, 9.443662565900013e-05, 0.0013803242472931743, 0.019244132563471794, -0.005802722182124853, 0.009575162082910538, -0.020825473591685295, 0.013320798985660076, -0.004911541938781738, -0.02480563335120678, -0.006311967968940735, -0.015384584665298462, 0.010479743592441082, 0.008395855315029621, 0.0032799451146274805, -0.007973717525601387, -0.01308627799153328, 0.003378779161721468, 0.02937544323503971, 0.010426138527691364, -0.008811293169856071, -0.009682371281087399, -0.00038800679612904787, 0.010921983048319817, -0.00266684009693563, -0.0024256182368844748, 0.0008296184241771698, 0.030420737341046333, -0.019203929230570793, 0.002730495762079954, -0.015666009858250618, 0.041758157312870026, -0.004958446137607098, 0.015679411590099335, 0.006901621352881193, -0.014352692291140556, 0.012985768727958202, 0.011632246896624565, 0.011029193177819252, -0.026051944121718407, -0.05676750838756561, -0.012711044400930405, 0.012034283019602299, -0.014165074564516544, 0.012201798148453236, 0.030179517343640327, -0.018306048586964607, 0.010332330130040646, -0.013421308249235153, 0.029804281890392303, 0.02278205007314682, 0.014500104822218418, 0.013843446038663387, 0.010519946925342083, 0.005956836044788361, 0.018748287111520767, -0.010781270451843739, 0.013736236840486526, 0.017394766211509705, -0.0025663310661911964, -0.003983508329838514, -0.008382454514503479, -0.019163724035024643, -0.016952525824308395, 0.004978548269718885, 0.011585342697799206, -0.016778310760855675, 0.016590693965554237, 0.0055413986556231976, 0.02287585847079754, 0.0035278676077723503, 0.0016315968241542578, 0.009715874679386616, 3.677479617181234e-05, -0.011994079686701298, 0.013910451903939247, 0.01022512000054121, -0.006915022619068623, -0.02841055765748024, 0.021522337570786476, -0.022219199687242508, 0.029804281890392303, 0.021080097183585167, 0.03594203665852547, -0.005229820962995291, 0.0017840355867519975, 0.005641907919198275, -0.023934554308652878, 0.0006327882292680442, 0.013736236840486526, -0.007906711660325527, -0.037710994482040405, -0.025837525725364685, -0.005370533559471369, -0.006727405358105898, -0.011076097376644611, -0.00947465281933546, -0.0068480162881314754, -0.012757948599755764, -0.023813944309949875, 0.01303937379270792, -0.0019280984997749329, -0.017126740887761116, -0.007564981002360582, -0.023639727383852005, -0.002638362580910325, -0.031466033309698105, 0.009293736889958382, 0.019324539229273796, -0.021535739302635193, 0.01376303844153881, 0.007049034349620342, -0.02642717957496643, 0.009159724228084087, 0.017140142619609833, -0.023210888728499413, -0.03210929036140442, 0.0018443410517647862, -0.03363702818751335, 0.005089107900857925, 0.021736755967140198, -0.009206628426909447, 0.004968497436493635, -0.0032749196980148554, -0.0049215927720069885, 0.01248992420732975, -0.017957616597414017, -0.005424138158559799, 0.02397475764155388, 0.011143103241920471, -0.01130391750484705, 0.02630656771361828, 0.015009351074695587, 0.03690692037343979, 0.014486704021692276, -0.022929463535547256, -0.005595003720372915, 0.014165074564516544, 0.014165074564516544, -0.021294517442584038, 0.00358482263982296, -0.0015461641596630216, 0.013247092254459858, 0.018493665382266045, -0.023411907255649567, 0.006141102872788906, 0.016068046912550926, -0.009199928492307663, 0.015719614923000336, 0.011793061159551144, -0.01688551902770996, -0.011685851961374283, -0.022929463535547256, 0.014285685494542122, -0.010580251924693584, -0.005182916298508644, 0.0011994079686701298, 0.01908331736922264, -0.0033436010126024485, -0.027606485411524773, -0.021080097183585167, -0.007236651610583067, 0.040525246411561966, -0.005591653287410736, 0.014526907354593277, -0.010988988913595676, 0.011679151095449924, 0.00535378186032176, -0.005772569682449102, 0.03323499113321304, -0.018761688843369484, 0.00815463438630104, 0.002294956473633647, -0.005976938176900148, 0.021602744236588478, -0.009702472947537899, -0.01803802326321602, 0.017582383006811142, 0.013682631775736809, -0.002310032956302166, 0.026628196239471436, -0.007176346145570278, 0.00023724323546048254, 0.03864907845854759, -0.012040983885526657, 0.017997819930315018, -0.01865447871387005, -0.007015531416982412, 0.03095678612589836, -0.012208499014377594, -0.019364742562174797, 0.043205488473176956, -0.029000209644436836, 0.026949826627969742, -0.00268861697986722, -0.01803802326321602, -0.015062956139445305, -0.016081446781754494, 0.030769169330596924, -0.025060255080461502, 0.013749637641012669, -0.01000400073826313, -0.028464162722229958, 0.00826854445040226, 0.006770959589630365, 0.03409266844391823, 0.012563630938529968, 0.006342120934277773, 0.008650478906929493, 0.007350561674684286, 0.007075836881995201, 0.03618325665593147, -0.016510285437107086, 0.009702472947537899, -0.006435929331928492, -0.011136402375996113, 0.003491014242172241, -0.010285425931215286, -0.006811162922531366, 0.007451070472598076, -0.034548308700323105, 0.017930813133716583, 0.013776440173387527, 0.007216549478471279, 0.022447019815444946, 0.026681801304221153, 0.03361022472381592, -0.0328061543405056, -0.03690692037343979, 0.021133702248334885, -0.0023904400877654552, -0.011310618370771408, -0.008630377240478992, -0.04685061797499657, 0.007142842747271061, 0.00477082934230566, -0.013119780458509922, -0.004891440272331238, 0.014553709886968136, -0.012094588950276375, 0.01570621319115162, -0.024430399760603905, 0.01781020313501358, 0.029884690418839455, 0.008208238519728184, -0.01692572422325611, -0.016550490632653236, 0.009193227626383305, 0.010513246059417725, -0.02010180987417698, -0.012717744335532188, 0.030635157600045204, -0.024242782965302467, -0.038729485124349594, 0.012121391482651234, 0.009287036024034023, 0.008777789771556854, -0.006482833530753851, -0.00324811739847064, 0.030018702149391174, 0.026628196239471436, 0.03371743485331535, 0.0018393155187368393, 0.005568201187998056, 0.020999690517783165, 0.021267713978886604, 0.00782630406320095, 0.009220030158758163, -0.03433389216661453, -0.00782630406320095, 0.014178476296365261, 0.04454560950398445, 0.025167465209960938, -0.020986288785934448, -0.006982028484344482, -0.03320818766951561, -0.02827654592692852, -0.028383754193782806, -0.009146323427557945, 0.006888220086693764, 0.02582412399351597, -0.026614796370267868, -0.013481613248586655, 0.02128111571073532, 0.023988159373402596, 0.016898920759558678, 0.0032698942814022303, 0.019150324165821075, -0.015116560272872448, -0.031171206384897232, -0.0031392325181514025, 0.0005054767243564129, -0.02062445692718029, 0.020115209743380547, 0.032216500490903854, 0.01969977281987667, -0.01645668037235737, 0.02779410220682621, 0.009923593141138554, -0.022942865267395973, -0.01554539892822504, -0.014808332547545433, 0.005799372214823961, 0.002067136112600565, 0.010265324264764786, -0.000992526882328093, 0.03101039119064808, 0.0019934293814003468, 0.012597134336829185, 0.01588043011724949, -0.012563630938529968, 0.03363702818751335, 0.010446240194141865, 0.003514466341584921, 0.007484573870897293, -0.013468212448060513, -0.03291336074471474, 0.011015791445970535, 0.02867858111858368, 0.007116040680557489, -0.02617255598306656, 0.00899220909923315, 2.593866338429507e-05, -0.024966446682810783, -0.012174995616078377, 0.01050654612481594, -0.0025562800001353025, 0.011659049428999424, -0.002656789030879736, -0.009715874679386616, -0.022808853536844254, -0.013682631775736809, -0.05229150503873825, -0.003939954563975334, -0.019512156024575233, -0.012288905680179596, 0.014982548542320728, -0.0033821293618530035, 0.029134223237633705, -0.03157324343919754, -0.011270414106547832, -0.0023787140380591154, -0.04025722295045853, -0.04719904810190201, -0.005095808766782284, 0.02401496097445488, -0.0018644428346306086, 0.013428009115159512, 0.0016324344323948026, -0.0028996861074119806, 0.023867547512054443, -0.015813423320651054, 0.011819863691926003, -0.003728885669261217, -0.026641597971320152, -0.0033151234965771437, -0.01235591247677803, -0.028517767786979675, -0.014969147741794586, -0.008663879707455635, -0.0003105310897808522, 0.005283425562083721, -0.003990209195762873, -0.023907752707600594, 0.02189757116138935, -0.0076386877335608006, 0.010593653656542301, 0.018024621531367302, 0.003966757096350193, 0.012731146067380905, -0.04856597259640694, -0.01253682840615511, -0.009025712497532368, -0.023076876997947693, -0.007109339814633131, -0.0015369508182629943, 0.0007693130173720419, 0.03532557934522629, 0.016898920759558678, -0.015196967869997025, -0.0007755947881378233, -0.003541268641129136, -0.0017354561714455485, 0.02740546688437462, 0.015934033319354057, 0.0017388064879924059, -0.006660399492830038, 0.022621236741542816, 0.0005800209473818541, 0.030688762664794922, -0.033931855112314224, -0.01130391750484705, -0.03543278947472572, 0.027874508872628212, 0.01196057628840208, -0.019324539229273796, 0.030795972794294357, 0.004010310862213373, 0.0006813675863668323, -0.0187348872423172, 0.01693912409245968, -0.007591783534735441, 0.03808622807264328, -0.017247352749109268, -0.012188397347927094, -0.033797841519117355, -0.008697383105754852, -0.02766009047627449, 0.018131831660866737, -0.033931855112314224, -0.0007446045055985451, 0.017354562878608704, 0.019471952691674232, -0.015103159472346306, -0.0011106249876320362, 0.011913672089576721, -0.018399856984615326, -0.010466341860592365, 0.01550519559532404, 0.0297238752245903, 0.03486993908882141, -0.006389025133103132, 0.02436339296400547, -0.03060835599899292, -0.03575441986322403, 0.015049554407596588, -0.007551579736173153, 0.010164815001189709, 0.011652348563075066, 0.0344679020345211, 0.01592063345015049, 0.040525246411561966, -0.0011290516704320908, 0.017930813133716583, 0.021388325840234756, -0.019029712304472923, -0.008543268777430058, 0.0028209539595991373, -0.008998909965157509, -0.00941434781998396, -0.006874818820506334, 0.0144062964245677, -0.0021307917777448893, 0.025515897199511528, -0.0036518287379294634, -0.000885317160282284, 0.019203929230570793, -0.00030592441908083856, -0.01134412083774805, -0.019324539229273796, -0.0014925593277439475, -0.012248702347278595, 0.008911802433431149, -0.0038729486986994743, 0.027325060218572617, -0.006559890229254961, -0.01715354435145855, -0.009682371281087399, 0.005638557486236095, 0.003648478304967284, 0.008415957912802696, 0.01815863512456417, -0.005052254535257816, -0.002273179590702057, 0.0069485255517065525, 0.014674320816993713, -0.03891710191965103, 0.006995429750531912, -0.0453764833509922, 0.0026417127810418606, 0.029589863494038582, -0.001106437062844634, 0.0077123939990997314, 0.014781530946493149, -0.009869988076388836, 0.024752028286457062, -0.017274154350161552, 0.008348951116204262, 0.00958856288343668, -0.020249223336577415, -0.02036983333528042, -0.003772439667955041, -0.02867858111858368, -0.018359651789069176, -0.001020166790112853, -0.002392115304246545, 0.005896530579775572, 0.01759578473865986, 0.02216559462249279, -0.035030752420425415, -0.029134223237633705, 0.032296907156705856, 0.022406816482543945, 0.03087637946009636, -0.016724705696105957, 0.011491534300148487, 0.005062305834144354, -0.0005955161177553236, -0.007464471738785505, 0.01829264685511589, 0.014794931747019291, 0.007605184335261583, 0.017528777942061424, 0.0004816058499272913, 0.011511635966598988, -0.021173905581235886, 0.030849575996398926, 0.0022597783245146275, -0.0029549659229815006, -0.04181176424026489, 0.0202760249376297, -0.0020168814808130264, 0.00886489823460579, -0.009421047754585743, -0.030849575996398926, -0.013079577125608921, -0.012107989750802517, -0.0030236472375690937, 0.018627677112817764, 0.00423478102311492, -0.011846666224300861, 0.00886489823460579, 0.014017662033438683, 0.008710783906280994, 0.00269866781309247, -0.03545959293842316, -0.00525327306240797, 0.03039393573999405, -0.010044204071164131, -0.02428298629820347, 0.010379234328866005, 0.004147673491388559, 0.031198007985949516, 0.0055045452900230885, -0.0004443337384145707, -0.004372143652290106, 0.011417827568948269, 0.01123691163957119, 0.010848276317119598, -0.016657698899507523, 0.02546229213476181, -0.03245772048830986, -0.0020872377790510654, 0.0004405646468512714, -0.013280595652759075, -0.006110949907451868, -0.019404945895075798, -0.007290256209671497, -0.009910192340612411, 0.0002466659643687308, 0.00534373102709651, 0.019163724035024643, 0.0029063865076750517, -0.011772959493100643, 0.009890090674161911, -0.011096199043095112, -0.027499275282025337, -0.009394245222210884, -0.013180086389183998, 0.008757688105106354, -0.042857058346271515, -0.01632266864180565, 0.0027070436626672745, -0.00017892704636324197, 0.012858457863330841, -0.01645668037235737, -0.022902661934494972, -0.014191877096891403, 0.0055413986556231976, -0.021602744236588478, 0.014607314951717854, -0.0012773025082424283, 0.003568071173503995, 0.013897051103413105, 0.007819604128599167, -0.005152763798832893, 0.0011843316024169326, 0.008831394836306572, -0.018667880445718765, -0.01991419307887554, -0.005256623029708862, -0.004991949535906315, 0.004388894885778427, -0.0041007692925632, 0.007993819192051888, 0.022500624880194664, -0.00593673437833786, 0.005105859600007534, 0.0039801583625376225, 0.004764128942042589, 0.03540598601102829, -0.01530417799949646, -0.006060695741325617, 0.005022102035582066, -0.0014866963028907776, -0.01015811413526535, -0.018198838457465172, -0.012208499014377594, -0.015196967869997025, -0.048753589391708374, 0.0072634536772966385, -0.0023736886214464903, 0.015129962004721165, -0.0012245351681485772, 0.012288905680179596, -0.025060255080461502, -0.002745572244748473, -0.020946085453033447, 0.021254312247037888, -0.017971018329262733, -0.002236326225101948, 0.006851366721093655, 0.03320818766951561, 0.027284855023026466, -0.0036116251721978188, -0.032698944211006165, -0.02185736782848835, -0.009166425094008446, -0.012999170459806919, -0.03966756910085678, -0.015076356939971447, -0.025716915726661682, 0.045322880148887634, 0.0028025272767990828, -0.016697902232408524, -0.00475072767585516, -0.004663619678467512, -0.05907251685857773, -0.0064526810310781, -0.000531441590283066, 0.006375623866915703, 0.019445151090621948, 0.027418868616223335, 0.005501195322722197, 0.013508415780961514, -0.009307137690484524, 0.01198737882077694, -0.012965667061507702, 0.00011788873962359503, -0.006717354524880648, 0.0005984476301819086, 0.0006139427423477173, -0.014017662033438683, -0.015518596395850182, 0.0064995852299034595, 0.0001897108304547146, -0.04108809679746628, -0.00958856288343668, 0.01742156781256199, -0.022902661934494972, -0.024081967771053314, 0.01550519559532404, 0.01684531569480896, 0.002926488406956196, -0.0008702408522367477, 0.01185336709022522, 0.005249922629445791, -0.010613755322992802, 0.0012119716266170144, -0.019887389615178108, -0.015451590530574322, -0.0012387740425765514, 0.0003193256270606071, 0.01657729223370552, -0.0011047619627788663, -0.004630116745829582, -0.017582383006811142, 0.013247092254459858, -0.01692572422325611, 0.02819613739848137, -0.015223770402371883, 0.006358872167766094, 0.02295626699924469, -0.00530017726123333, -4.9757214583223686e-05, -0.0035982239060103893, 0.0006332069751806557, -0.004043813794851303, 0.022621236741542816, 0.016349472105503082, -0.013374404050409794, -0.022487225010991096, -0.009555060416460037, -0.005943434778600931, -0.018989508971571922, -0.004094068426638842, -0.011102898977696896, -0.0032682190649211407, -0.040042802691459656, 0.032966967672109604, 0.01719374768435955, -0.0373893640935421, -0.00415772432461381, -0.009943694807589054, 0.0272714551538229, 0.005002000369131565, -0.0017136792885139585, 0.010526647791266441, -0.010560150258243084, 0.021267713978886604, 0.0059903389774262905, -0.007330460008233786, -0.0010293801315128803, 0.014433098956942558, 0.025609705597162247, -0.014392895624041557, -0.011585342697799206, 0.19726575911045074, -0.04293746501207352, 0.009514856152236462, 0.0225676316767931, 0.002504350384697318, 0.0025345031172037125, 0.037710994482040405, 0.015223770402371883, -0.015076356939971447, 0.016764909029006958, -2.9262790121720172e-05, -0.0016374598490074277, -0.02590453252196312, 0.009856587275862694, 0.024068566039204597, -0.018976107239723206, -0.028839396312832832, -0.04309827834367752, -0.014915542677044868, 0.00956846121698618, -0.031332019716501236, 0.009354041889309883, -0.005404036492109299, -0.022634636610746384, 0.019860588014125824, -0.010084407404065132, -0.006975328084081411, -0.004080667160451412, 0.017166946083307266, 0.015773219987750053, -0.007645388133823872, -0.0021944474428892136, 0.0012881909497082233, 0.004566460847854614, -0.006278465036302805, -0.009025712497532368, 0.007558280136436224, 0.00647613313049078, 0.0031827865168452263, 0.021790361031889915, 0.009702472947537899, 0.008482963778078556, 0.01746177114546299, -0.028035324066877365, 0.010781270451843739, 0.0311444029211998, -0.01240281667560339, -0.0075381784699857235, 0.011886869557201862, 0.0036886821035295725, -0.013528517447412014, 0.021401725709438324, 0.014794931747019291, 0.0422138012945652, 0.004003610461950302, 0.0021441930439323187, -0.023076876997947693, 0.010513246059417725, 0.0035178165417164564, -0.004583212547004223, -0.0407128632068634, -0.0036987329367548227, 0.0076386877335608006, 0.027284855023026466, 0.007357262074947357, 0.014459901489317417, 0.005216419696807861, -0.002613235265016556, 0.006968627218157053, -0.01649688556790352, -0.011880169622600079, -0.01139102503657341, -0.016697902232408524, -0.004084017593413591, -0.019458550959825516, -0.036478083580732346, 0.020651258528232574, 0.03189487010240555, 0.011759558692574501, 0.031600043177604675, -0.00883809570223093, -0.025663310661911964, -0.007002130150794983, -0.014124871231615543, 0.0020168814808130264, -0.006975328084081411, -0.004888089839369059, -0.02603854425251484, -0.005688812118023634, -0.03210929036140442, 0.001333420048467815, -0.003822694066911936, -0.011243612505495548, 0.009126221761107445, 0.005712264217436314, -0.0019398245494812727, 0.003718834836035967, -0.01886889897286892, 0.00765208899974823, -0.02185736782848835, -0.03679971396923065, 0.03328859806060791, 0.05580262467265129, 0.014031062833964825, 0.01013801246881485, -0.006439279764890671, -0.011163204908370972, 0.003832744900137186, -0.015893829986453056, -0.013910451903939247, -0.0014062890550121665, -0.051567841321229935, 0.01842665858566761, -0.006757558323442936, -0.01763598807156086, -0.0019012960838153958, -0.006157854106277227, -0.009923593141138554, 0.031948477029800415, -0.00908601749688387, -0.011223509907722473, -0.01317338552325964, 0.011357522569596767, -0.008362352848052979, -0.0014799956697970629, -0.028946606442332268, -0.007002130150794983, 0.004469302482903004, -0.027472473680973053, 0.004566460847854614, 0.0027706993278115988, -0.03184126690030098, 0.024162374436855316, 0.004563110880553722, 0.01319348718971014, -0.02484583668410778, -0.019150324165821075, 0.0011215134290978312, -0.010044204071164131, -0.01062045618891716, -0.01180646289139986, -0.009548359550535679, -0.02771369367837906, -0.020262623205780983, 0.028571370989084244, -0.006402426399290562, -0.005316928494721651, 0.029563061892986298, 0.01719374768435955, -0.0064057763665914536, -0.0019414997659623623, -0.018667880445718765, 0.009065915830433369, -0.004104119259864092, 0.019739976152777672, 0.01657729223370552, -0.0179844181984663, -0.005725665483623743, 0.004757428076118231, 0.009146323427557945, -0.03237731382250786, -0.02216559462249279, 0.023318098857998848, -0.01833285018801689, 0.004214679356664419, -0.00828864611685276, -0.16906961798667908, -0.010647258721292019, 0.0006935124401934445, -0.03275254741311073, 0.020115209743380547, 0.011913672089576721, 0.006241611670702696, -0.006757558323442936, -0.03768419101834297, -0.0028377054259181023, 0.0068145133554935455, -0.026681801304221153, -0.010868377983570099, -0.0064694322645664215, -0.015491794794797897, 0.0047038234770298, 0.019994599744677544, -0.0011097873793914914, 0.01134412083774805, 0.011243612505495548, 0.04178496077656746, -0.028464162722229958, -0.017796801403164864, 0.001036080764606595, 0.0061545041389763355, 0.004532957915216684, -0.0029750678222626448, 0.03411947190761566, -0.003929903730750084, -0.037442971020936966, -0.007209849078208208, -0.018145233392715454, 0.021039893850684166, -0.007893310859799385, 0.013990859501063824, 0.022004781290888786, 0.030983589589595795, 0.0025596304330974817, -0.01547839306294918, 0.004107469692826271, 0.016202058643102646, 0.02559630386531353, 0.003420657943934202, 0.006422528065741062, -0.015531998127698898, 0.011029193177819252, 0.02665499970316887, -0.020785270258784294, -0.0008844796102494001, -0.007765999063849449, 0.018145233392715454, -0.014875339344143867, 0.015170165337622166, -0.020785270258784294, -0.014433098956942558, 0.007384064607322216, 0.00601379107683897, 0.0004317701095715165, -0.007095938548445702, -0.01198737882077694, -0.00355131970718503, 0.0030085707549005747, -0.007564981002360582, 0.0013970757136121392, 0.01005090493708849, -0.014191877096891403, -0.009662269614636898, 0.013421308249235153, -0.02409536950290203, -0.010037503205239773, -0.019605964422225952, -0.0029951694887131453, -0.003970107529312372, 0.002244702074676752, 0.01842665858566761, 0.01068746205419302, -0.004874688573181629, 0.01582682505249977, 0.025301476940512657, -0.0019800281152129173, -0.018922504037618637, 0.025046855211257935, 0.012047684751451015, -0.006151153706014156, -0.003194512566551566, -0.027686892077326775, -0.013468212448060513, 0.011618846096098423, -0.01742156781256199, -0.01084157545119524, 0.022044984623789787, -0.020946085453033447, -0.002822629176080227, -0.005213069263845682, 0.0004744864709209651, -7.491064752684906e-05, 0.008261843584477901, -0.009173125959932804, -0.004543008748441935, -0.009199928492307663, -0.004901491105556488, 0.017354562878608704, -0.004405646584928036, -0.00965556874871254, 0.031251613050699234, -0.004553060047328472, -0.01537118386477232, 0.004308487754315138, 0.024658219888806343, -0.028732186183333397, 0.010419437661767006, -0.023157283663749695, 0.0025713564828038216, 0.00591663271188736, 0.013843446038663387, 0.0056754108518362045, -0.015759818255901337, -0.02224600315093994, 0.02445720136165619, 0.008730885572731495, 0.06003740429878235, 0.002640037564560771, -0.005491144489496946, 0.007973717525601387, -0.00033733347663655877, -0.00768559193238616, -0.11514316499233246, -0.019552359357476234, -0.003507765708491206, 0.017702993005514145, -0.0249396450817585, 0.028866197913885117, -0.0045698112808167934, 0.035727616399526596, -0.020999690517783165, 0.03377103805541992, -0.030099108815193176, 0.003378779161721468, 0.006358872167766094, -0.013461511582136154, 0.023505715653300285, 0.005280075129121542, 0.03047434240579605, -0.012871858663856983, -0.01931113749742508, 0.037576980888843536, -0.0029599913395941257, -0.0082015385851264, -0.006740806624293327, -0.023720135912299156, 0.0050857579335570335, 0.029831085354089737, -0.023894350975751877, 0.02910741977393627, 0.016778310760855675, -0.006734106224030256, 0.009742677211761475, -0.03216289356350899, -0.01728755608201027, -0.015813423320651054, 0.0297238752245903, 0.012195097282528877, -0.0009087693179026246, -0.006067396141588688, 0.022527428343892097, -0.012898661196231842, 0.0017522077541798353, 0.0028377054259181023, 0.0010813098633661866, -0.005115910433232784, 0.0032464421819895506, -0.023559320718050003, -0.024256182834506035, 0.02603854425251484, 0.007410867139697075, -0.021602744236588478, -0.01803802326321602, -0.029402246698737144, -0.04636817425489426, 0.014218679629266262, 0.019096719101071358, 0.01860087364912033, 0.0051963175646960735, 0.012724445201456547, -0.009809683077037334, 0.013582122512161732, -0.010064305737614632, 0.005035503301769495, -0.03433389216661453, 0.017220549285411835, 0.008007220923900604, 0.01194047462195158, 0.001009278348647058, -0.03184126690030098, 0.00958856288343668, -0.026628196239471436, 0.00831544864922762, 0.015773219987750053, -0.00424483185634017, 0.005755817983299494, -0.01742156781256199, 0.01178636122494936, -0.021884169429540634, -0.0344679020345211, 0.0007328784558922052, -0.006425878498703241, -0.013515116646885872, -0.01363572757691145, -0.017930813133716583, -0.0022061734925955534, -0.014513506554067135, 0.015210368670523167, -0.0058496263809502125, -0.019686371088027954, -0.017863808199763298, -0.01719374768435955, 0.01882869563996792, 0.03425348177552223, 0.023237692192196846, -0.014526907354593277, 0.00542078772559762, 0.01127711497247219, -0.025797322392463684, -0.016818514093756676, 0.02322429046034813, 0.013032672926783562, -0.01693912409245968, 0.014714524149894714, -0.04561770707368851, 0.02792811393737793, 0.011210109107196331, -0.009829784743487835, 0.0052666738629341125, -0.03168044984340668, 0.01475472841411829, -0.013421308249235153, 0.00417782599106431, 0.03178765997290611, -0.011618846096098423, 0.023988159373402596, 0.004559760447591543, 0.006268414203077555, -0.053015172481536865, -0.014942345209419727, 0.010325629264116287, -0.02440359629690647, 0.01943174935877323, 0.029134223237633705, 0.01693912409245968, -0.008255142718553543, 0.009729275479912758, 0.025542698800563812, 0.03294016420841217, -0.021133702248334885, -0.024993250146508217, 0.017528777942061424, -0.01143792923539877, -0.00026069534942507744, -0.006412477232515812, -0.017997819930315018, 0.0028343552257865667, 0.014044464565813541, -0.013709434308111668, -0.017837004736065865, 0.011813163757324219, 0.010741067118942738, 0.003913152031600475, 0.038890302181243896, -0.026400376111268997, -0.048405155539512634, 0.003966757096350193, 0.0017170296050608158, -0.006797761656343937, -0.0030236472375690937, 0.0023703384213149548, -0.03259173408150673, 0.020691461861133575, -0.005940084811300039, 0.0545429103076458, 0.02291606180369854, -0.02212539128959179, -0.03607604652643204, -0.017743196338415146, 0.024443799629807472, 0.020088408142328262, 0.005042203702032566, 0.005122611299157143, 0.023371703922748566, 0.01684531569480896, 0.0019716524984687567, 0.021254312247037888, 0.007471172604709864, -0.008938604965806007, -0.023894350975751877, 0.0005209718947298825, 0.0030320228543132544, -0.004274984821677208, -0.008047424256801605, 0.011612145230174065, 0.02176355943083763, 0.01622886024415493, 0.015424787998199463, 0.011310618370771408, -0.004928293637931347, 0.009508156217634678, 0.00384279596619308, -0.022581033408641815, 0.01772979646921158, 0.011705953627824783, 0.0012136467266827822, 0.010285425931215286, 0.00771909486502409, 0.01931113749742508, 0.009313838556408882, -0.01502275187522173, 0.011210109107196331, -0.002603184198960662, -0.010218420065939426, -0.008965406566858292, 0.011933773756027222, -0.002886284841224551, 0.013488314114511013, 0.0007077511982060969, -0.002077186945825815, 0.010111209936439991, -0.010533347725868225, 0.02586432732641697, 0.01319348718971014, 0.020557450130581856, -0.01755557954311371, -0.002078862162306905, -0.021696552634239197, -0.02542208880186081, -0.004288386087864637, -0.03704093396663666, 0.005802722182124853, 0.020503845065832138, 0.01979358121752739, 0.0066101448610424995, -0.017823604866862297, -0.0010494819143787026, 0.018507065251469612, -0.012891960330307484, 0.028115730732679367, 0.0055749015882611275, -0.013501714915037155, -0.036478083580732346, 0.02607874758541584, 0.03637087345123291, 0.0047038234770298, 0.06539788842201233, 0.00824844278395176, 0.010164815001189709, 0.011625546030700207, 0.025489093735814095, -0.03390505164861679, 0.040310829877853394, 0.011886869557201862, -0.015223770402371883, -0.0093674436211586, -0.017086537554860115, -0.015156764537096024, -0.03800582140684128, 1.0044361260952428e-05, 0.012731146067380905, 0.013354302383959293, 0.014071266166865826, 0.0686141774058342, 0.015062956139445305, -0.018721485510468483, 0.022929463535547256, -0.005407386925071478, 0.012818253599107265, 0.016470082104206085, 0.007665489800274372, -0.0021240911446511745, -0.00477082934230566, 0.007598483934998512, -0.0007508863345719874, 0.003256493015214801, -0.03143922984600067, -0.01767619140446186, -0.015974238514900208, -0.001592230866663158, 0.034146275371313095, -0.029536258429288864, -0.01495574600994587, 0.022969666868448257, 0.004003610461950302, 0.0202760249376297, -0.0059903389774262905, -0.003893050365149975, 0.008811293169856071, 0.028115730732679367, -0.008683981373906136, 0.00424483185634017, -0.001953225815668702, 0.04508165642619133, 0.03267214074730873, -0.02867858111858368, -0.009642167948186398, 0.0009221705258823931, 0.005765868816524744, 0.02239341475069523, -0.031466033309698105, 0.0026735407300293446, -0.004047164227813482, -0.0017237301217392087, 0.021977977827191353, 0.0034675621427595615, -0.034012261778116226, -0.006512986030429602, -0.00883809570223093, -0.018976107239723206, -0.009682371281087399, -0.02660139463841915]}, "text_id_to_doc_id": {"1637c45e-7aaa-49e8-810c-cfbe7840d1e4": "bb4cb21b-cb29-496b-969e-f21ecf782d93"}}}} -------------------------------------------------------------------------------- /pychatgpt_gui/pygpt4all_cli.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | 3 | # Borrowed from https://github.com/nomic-ai/gpt4all-ui 4 | ###### 5 | from pathlib import Path 6 | from typing import Callable 7 | from pyllamacpp.model import Model 8 | import argparse 9 | import sys 10 | 11 | backend_name = "LLAMACPP" 12 | 13 | class LLAMACPP(): 14 | file_extension='*.bin' 15 | def __init__(self, model_path, config:dict) -> None: 16 | """Builds a LLAMACPP backend 17 | Args: 18 | config (dict): The configuration file 19 | """ 20 | self.config = config 21 | 22 | self.model = Model( 23 | ggml_model=model_path, 24 | n_ctx=self.config['ctx_size'], 25 | seed=self.config['seed'], 26 | ) 27 | 28 | def get_num_tokens(self, prompt): 29 | return self.model.num_tokens(prompt) 30 | 31 | def generate(self, 32 | prompt:str, 33 | n_predict: int = 128, 34 | new_text_callback: Callable[[str], None] = bool, 35 | verbose: bool = False, 36 | **gpt_params ): 37 | """Generates text out of a prompt 38 | Args: 39 | prompt (str): The prompt to use for generation 40 | n_predict (int, optional): Number of tokens to prodict. Defaults to 128. 41 | new_text_callback (Callable[[str], None], optional): A callback function that is called everytime a new text element is generated. Defaults to None. 42 | verbose (bool, optional): If true, the code will spit many informations about the generation process. Defaults to False. 43 | """ 44 | try: 45 | self.model.generate( 46 | prompt, 47 | new_text_callback=new_text_callback, 48 | n_predict=n_predict, 49 | temp=self.config['temp'], 50 | top_k=self.config['top_k'], 51 | top_p=self.config['top_p'], 52 | repeat_penalty=self.config['repeat_penalty'], 53 | repeat_last_n = self.config['repeat_last_n'], 54 | n_threads=self.config['n_threads'], 55 | verbose=verbose 56 | ) 57 | except Exception as ex: 58 | print(ex) 59 | 60 | if __name__=="__main__": 61 | # create an ArgumentParser object 62 | parser = argparse.ArgumentParser() 63 | 64 | # add the -m or --model_path argument (../models/llama_cpp/ is for gpt4all-ui default structure) 65 | parser.add_argument("-m", "--model_path", default="../models/llama_cpp/", help="path to the model file") 66 | parser.add_argument('--temp', type=float, default=0.5) 67 | parser.add_argument('--top_k', type=int, default=40) 68 | parser.add_argument('--top_p', type=float, default=0.95) 69 | parser.add_argument('--repeat_penalty', type=float, default=1.3) 70 | parser.add_argument('--repeat_last_n', type=int, default=5) 71 | parser.add_argument('--n_threads', type=int, default=8) 72 | parser.add_argument('--ctx_size', type=int, default=512) 73 | parser.add_argument('--seed', type=int, default=-1) 74 | parser.add_argument('--prompt', type=str, default='Once apon a time') 75 | parser.add_argument('--trigger_stop_after', type=int, default=-1) 76 | # parse the arguments 77 | args = parser.parse_args() 78 | config = { 79 | 'temp': args.temp, 80 | 'top_k': args.top_k, 81 | 'top_p': args.top_p, 82 | 'repeat_penalty': args.repeat_penalty, 83 | 'repeat_last_n': args.repeat_last_n, 84 | 'n_threads': args.n_threads, 85 | 'ctx_size': args.ctx_size, 86 | 'seed': args.seed 87 | } 88 | 89 | backend = LLAMACPP(args.model_path, config) 90 | 91 | #Not good to use global, but this is a quick example so nevermind 92 | global counter 93 | counter = 0 94 | 95 | def callback(text): 96 | global counter 97 | print(text,end="") 98 | sys.stdout.flush() 99 | # test the stop generation after a number of words 100 | counter +=1 101 | if args.trigger_stop_after>0: 102 | if counter>=args.trigger_stop_after: 103 | return False 104 | 105 | return True 106 | 107 | num_tokens = backend.get_num_tokens(args.prompt) 108 | print(f"Prompt has {num_tokens} tokens") 109 | output_text = backend.generate(args.prompt,new_text_callback=callback) 110 | print("Text : output_text") -------------------------------------------------------------------------------- /pychatgpt_gui/state/log_a040f535248f47888981886738c1b883.json: -------------------------------------------------------------------------------- 1 | python: can't open file 'C:\\pyChatGPT_GUI\\ui\\api.py': [Errno 2] No such file or directory 2 | -------------------------------------------------------------------------------- /pychatgpt_gui/state/log_c7333b05c97040c3aac64cdcc5220b33.json: -------------------------------------------------------------------------------- 1 | python: can't open file 'C:\\pyChatGPT_GUI\\ui\\api.py': [Errno 2] No such file or directory 2 | -------------------------------------------------------------------------------- /pychatgpt_gui/state/log_d2ec3cd42d97418cb7a66dd9531e4497.json: -------------------------------------------------------------------------------- 1 | python: can't open file 'C:\\pyChatGPT_GUI\\ui\\api.py': [Errno 2] No such file or directory 2 | -------------------------------------------------------------------------------- /pychatgpt_gui/state/log_d2f47bee538345aeacc625b50a38bfe4.json: -------------------------------------------------------------------------------- 1 | python: can't open file 'C:\\pyChatGPT_GUI\\ui\\api.py': [Errno 2] No such file or directory 2 | -------------------------------------------------------------------------------- /pychatgpt_gui/state/state_a040f535248f47888981886738c1b883.json: -------------------------------------------------------------------------------- 1 | {"pending_input": null, "awaiting_input": false, "messages": [], "last_message_read_index": -1} -------------------------------------------------------------------------------- /pychatgpt_gui/state/state_c7333b05c97040c3aac64cdcc5220b33.json: -------------------------------------------------------------------------------- 1 | {"pending_input": null, "awaiting_input": false, "messages": [], "last_message_read_index": -1} -------------------------------------------------------------------------------- /pychatgpt_gui/state/state_d2ec3cd42d97418cb7a66dd9531e4497.json: -------------------------------------------------------------------------------- 1 | {"pending_input": null, "awaiting_input": false, "messages": [], "last_message_read_index": -1} -------------------------------------------------------------------------------- /pychatgpt_gui/state/state_d2f47bee538345aeacc625b50a38bfe4.json: -------------------------------------------------------------------------------- 1 | {"pending_input": null, "awaiting_input": false, "messages": [], "last_message_read_index": -1} -------------------------------------------------------------------------------- /pychatgpt_gui/utils.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | 3 | import os 4 | import re 5 | 6 | def format_directory(directory): 7 | output = [] 8 | def helper(directory, level, output): 9 | files = os.listdir(directory) 10 | for i, item in enumerate(files): 11 | is_folder = os.path.isdir(os.path.join(directory, item)) 12 | joiner = "├── " if i < len(files) - 1 else "└── " 13 | item_html = item + "/" if is_folder else f"{item}" 14 | output.append("│ " * level + joiner + item_html) 15 | if is_folder: 16 | helper(os.path.join(directory, item), level + 1, output) 17 | output.append(os.path.basename(directory) + "/") 18 | helper(directory, 1, output) 19 | return "\n".join(output) 20 | 21 | DOWNLOAD_OUTPUTS_JS = """ 22 | () => { 23 | const a = document.createElement('a'); 24 | a.href = 'file=outputs.zip'; 25 | a.download = 'outputs.zip'; 26 | document.body.appendChild(a); 27 | a.click(); 28 | document.body.removeChild(a); 29 | }""" 30 | 31 | def remove_color(text): 32 | ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') 33 | return ansi_escape.sub('', text) -------------------------------------------------------------------------------- /pychatgpt_gui/voice_bot.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | """ 3 | @author: Ajay Arunachalam 4 | Created on: 30/04/2023 5 | Goal: Voice BOT CHATGPT 6 | Version: 0.0.1 7 | """ 8 | import openai 9 | import os, json 10 | import sys 11 | import playsound 12 | import speech_recognition as sr 13 | 14 | from typing import Text 15 | from gtts import gTTS 16 | 17 | 18 | # Initialize the recognizer 19 | r = sr.Recognizer() 20 | 21 | # Set up the OpenAI API client 22 | # Set up the OpenAI API client 23 | 24 | with open('../api_key.json', 'r') as f: 25 | openai_key = json.load(f) 26 | print(openai_key) 27 | 28 | if 'api_key' in openai_key: 29 | openai.api_key = openai_key['api_key'] 30 | 31 | def speak_chatgpt_text(text: str): 32 | # Initialize gTTS engine 33 | lang_accent = 'com.en' 34 | filename = "tmp.mp3" 35 | tts = gTTS(text, tld=lang_accent) 36 | tts.save(filename) 37 | playsound.playsound(filename) 38 | os.remove(filename) 39 | 40 | 41 | def ask_chatgpt(prompt: str) -> Text: 42 | chat_gpt3_model_engine = "text-davinci-003" 43 | results = [] 44 | # Generate a streamed response 45 | for resp in openai.Completion.create(engine=chat_gpt3_model_engine, prompt=prompt, max_tokens=512, n=1, stop=None, temperature=0.5, stream=True, ): 46 | text = resp.choices[0].text 47 | results.append(text) 48 | sys.stdout.write(text) 49 | sys.stdout.flush() 50 | 51 | return "".join(results) 52 | 53 | 54 | def run_voice_bot(): 55 | while True: 56 | # Exception handling to handle exceptions at runtime if 57 | # no user prompt given 58 | try: 59 | # use the microphone as source for input. 60 | with sr.Microphone() as source2: 61 | print("Microphone is open now say your prompt...") 62 | # wait for a second to let the recognizer 63 | # adjust the energy threshold cbased on 64 | # the surrounding noise level 65 | r.adjust_for_ambient_noise(source2, duration=0.2) 66 | 67 | # listens for the user's input 68 | audio2 = r.listen(source2) 69 | 70 | # Using google to recognize audio 71 | my_prompt = r.recognize_google(audio2) 72 | my_prompt = my_prompt.lower() 73 | 74 | print("Did you say :", my_prompt) 75 | prompt_resp_text = ask_chatgpt(my_prompt) 76 | speak_chatgpt_text(prompt_resp_text) 77 | 78 | except Exception as e: 79 | print(e) 80 | print("Could not request results; {0}".format(e)) 81 | 82 | 83 | if __name__ == '__main__': 84 | 85 | configured_microphones = sr.Microphone.list_microphone_names() 86 | if configured_microphones: 87 | for index, name in enumerate(configured_microphones): 88 | print("Microphone with name \"{1}\" found for microphone(device_index{0})".format(index, name)) 89 | run_voice_bot() 90 | else: 91 | print("No configured Microphones found") -------------------------------------------------------------------------------- /pychatgpt_ui: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | echo "pychatgpt_ui package" -------------------------------------------------------------------------------- /qa_docs/LLM.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/qa_docs/LLM.docx -------------------------------------------------------------------------------- /qa_docs/logfile.log: -------------------------------------------------------------------------------- 1 | .LOG 2 | 3 | 4 | In the UK, most qualifications taken through work, school, college or university, fit into one of nine levels (12 in Scotland). The higher the level, the harder the qualification. The levels are based on the standards of knowledge, skill and competence needed for each qualification. 5 | 6 | 15:36 28/04/2023 7 | 8 | 15:38 28/04/2023 9 | 10 | 10:29 01/05/2023 11 | 12 | 10:33 01/05/2023 13 | 14 | 10:34 01/05/2023 15 | -------------------------------------------------------------------------------- /qa_docs/qual_log.txt: -------------------------------------------------------------------------------- 1 | .LOG 2 | 3 | 4 | In the UK, most qualifications taken through work, school, college or university, fit into one of nine levels (12 in Scotland). The higher the level, the harder the qualification. The levels are based on the standards of knowledge, skill and competence needed for each qualification. 5 | 6 | 10:33 01/05/2023 7 | 8 | 10:34 01/05/2023 9 | -------------------------------------------------------------------------------- /qa_docs/qual_type_uk.txt: -------------------------------------------------------------------------------- 1 | In the UK education sector, there are a wide range of qualification types offered by the United Kingdom awarding bodies. Qualifications range in size and type, can be academic, vocational or skills-related, and are grouped together into different levels of difficulty. In England, Wales and Northern Ireland, qualifications are divided into Higher Education qualifications, which are on the Framework for Higher Education Qualifications (FHEQ) and are awarded by bodies with degree awarding powers, and Regulated qualifications, which are on the Regulated Qualifications Framework (RQF) and are accredited by Ofqual in England, the Council for the Curriculum, Examinations and Assessment in Northern Ireland and Qualifications Wales in Wales. In Scotland, qualifications are divided into Higher Education qualifications, Scottish Qualifications Authority qualifications and Scottish Vocational Qualifications/Modern Apprenticeships, which are on the Scottish Credit and Qualifications Framework (SCQF). Scottish Higher Education Qualifications are on both the SCQF and the FHEQ.[1][2][3] -------------------------------------------------------------------------------- /qa_docs/summer_report_2022_ofqual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajayarunachalam/pychatgpt_gui/7cc3d591689f89e4cd45870ce6327b014a44e7ad/qa_docs/summer_report_2022_ofqual.pdf -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # Library dependencies for the python code. You need to install these with 2 | 3 | # py -3 -m venv 4 | # or 5 | # conda create -n python=3.6 (or 3.7) 6 | # source activate 7 | # run requirements 8 | # python -m ipykernel install --user --name --display-name "" 9 | 10 | # `pip install -U -r requirements.txt --ignore-installed` before you can run this. 11 | 12 | # libraries 13 | numpy 14 | pandas 15 | scipy 16 | tqdm 17 | openai 18 | gpt_index==0.4.24 19 | PyPDF2 20 | PyCryptodome 21 | gradio 22 | scikit-learn 23 | openai_whisper 24 | TTS 25 | gTTS 26 | ffmpeg 27 | ffprobe 28 | SpeechRecognition 29 | pyaudio 30 | playsound 31 | langchain 32 | chromadb 33 | tiktoken 34 | pypdf 35 | unstructured[local-inference] 36 | nomic 37 | pyllamacpp 38 | pygpt4all 39 | warnings -------------------------------------------------------------------------------- /run_app_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # assumes running from root directory 4 | echo "python version" 5 | xterm -e python -i -c "print('>>> python -version');python -version" 6 | xterm -e python -i -c "print('>>> python app.py');python app.py" 7 | #python -version 8 | #python app.py 9 | echo "Launching the pyChatGPT GUI APP.." 10 | 11 | 12 | -------------------------------------------------------------------------------- /run_app_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | chmod ugo+rx ./run_app_mac.sh 4 | 5 | sudo easy_install pip 6 | 7 | sudo -H pip install virtualenv 8 | 9 | # Start Virtual Environment 10 | 11 | ## create "pychatgpt_ui_test" as a new virtualenv 12 | 13 | virtualenv pychatgpt_ui_test 14 | 15 | ## Activate virtualenv 16 | 17 | source pychatgpt_ui_test/bin/activate 18 | 19 | ## Navigate to where you want to store your code. Create new directory. 20 | 21 | git clone https://github.com/ajayarunachalam/pychatgpt_gui.git && cd pychatgpt_gui 22 | 23 | # assumes running from root directory 24 | python3 app.py 25 | echo "Launching the pyChatGPT GUI APP.." 26 | 27 | 28 | -------------------------------------------------------------------------------- /run_app_windows.bat: -------------------------------------------------------------------------------- 1 | ::Replace with your own virtual environment path before running this file 2 | :: Run this bat file after the repository is cloned 3 | @echo off 4 | echo "Launching the APP" 5 | C:\pyChatGPT_GUI_Test\Scripts\activate.bat & cd pychatgpt_gui & python app.py -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | 3 | 4 | # Copyright (C) 2022-2023 Ajay Arunachalam 5 | # License: MIT, ajay.arunachalam08@gmail.com 6 | 7 | import pip 8 | import logging 9 | import pkg_resources 10 | try: 11 | from setuptools import setup 12 | except ImportError: 13 | from distutils.core import setup 14 | 15 | __version__ = '0.0.1' 16 | 17 | def readme(): 18 | with open('README.rst', 'r', encoding='utf-8') as f: 19 | return f.read() 20 | 21 | 22 | setup( 23 | name='pychatgpt_gui', 24 | version=__version__, 25 | packages=["pychatgpt_gui"], 26 | description='pyChatGPT GUI - is an open-source, low-code python GUI wrapper providing easy access and swift usage of Large Language Models (LLMs) such as ChatGPT, AutoGPT, LLaMa, GPT-J, and GPT4All with custom-data and pre-trained inferences.', 27 | long_description = readme(), 28 | long_description_content_type="text/markdown", 29 | url='https://github.com/ajayarunachalam/pychatgpt_gui', 30 | install_requires=[ 31 | "numpy", 32 | "pandas", 33 | "warnings", 34 | "scipy", 35 | "tqdm", 36 | "openai", 37 | "gpt_index==0.4.24", 38 | "PyPDF2", 39 | "PyCryptodome", 40 | "gradio", 41 | "scikit-learn", 42 | "openai_whisper", 43 | "TTS", 44 | "gTTS", 45 | "ffmpeg", 46 | "ffprobe", 47 | "SpeechRecognition", 48 | "pyaudio", 49 | "playsound", 50 | "langchain", 51 | "chromadb", 52 | "tiktoken", 53 | "pypdf", 54 | "unstructured[local-inference]", 55 | "nomic", 56 | "pyllamacpp", 57 | "pygpt4all", 58 | ], 59 | license='MIT', 60 | include_package_data=True, 61 | author='Ajay Arunachalam', 62 | author_email='ajay.arunachalam08@gmail.com') 63 | 64 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # assumes run from root directory 4 | echo "Installing pychatGPT_GUI - A simple, ease-to-use Python GUI Wrapper for unleashing the power of GPT" 5 | echo "START..." 6 | echo "Installing the dependencies..." 7 | pip install -U -r requirements.txt 8 | echo "End" 9 | echo "Installation Complete" 10 | xterm -e python -i -c "print('>>> from pychatgpt_gui.app import *');from pychatgpt_gui.app import *" 11 | echo "Test Environment Configured" 12 | echo "Package Installed & Tested Sucessfully" 13 | 14 | --------------------------------------------------------------------------------