Giter Club home page Giter Club logo

Comments (38)

Parking-Master avatar Parking-Master commented on July 30, 2024 2

@JamesVausch hello! It's been a while, but the update with all the fixes has been pushed. Please try it and let us know what happens!

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024 2

@JamesVausch hello! It's been a while, but the update with all the fixes has been pushed. Please try it and let us know what happens!

I've tested it for a day and so far it went so smooth, although there are rare cases it takes a while to fetch which I guess the problem with cloudflare. Overall it's a very good version, thanks for the fix and improvement!

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024 1

Doing that tomorrow. Thank you for your contribution.

from node_characterai.

monckey100 avatar monckey100 commented on July 30, 2024 1

@monckey100 could you run npm list | grep node_characterai and paste the output please?

├── [email protected]

from node_characterai.

monckey100 avatar monckey100 commented on July 30, 2024 1

@monckey100 I've never used chrome regularly as a personal browser, so how would you do that? Thanks for responding by the way

You create an account on a machine, probably also login to character.ai and you can grab the profile and put it on your server after you set it up:
"C:\Users\USER_NAME\AppData\Local\Google\Chrome\User Data"
then you just point your puppeteer setup to the profile folder.

https://stackoverflow.com/questions/53236692/how-to-use-chrome-profile-in-puppeteer

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024 1

I'll try. I'll keep you updated

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024

Hmm, weird issue. I don't use Replit, but perhaps I could try to help you there.

What is your node_characterai version? and at which line of code would it cause this error?

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024

Hmm, weird issue. I don't use Replit, but perhaps I could try to help you there.

What is your node_characterai version? and at which line of code would it cause this error?

It's the latest one, it wasn't giving that error the day before. I encountered this error yday, was working well 2 days ago.
here's a screenshot of the code and the console showing the error

After a while of waiting tho it works normally without errors so maybe it takes a while to authenticate? I'm not sure

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024

I think this is caused by the cloudflare waiting room, needs investigation

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@realcoloride also this is caused by the waiting room. At the end of the error, it shows "/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1" which is the challenge page after the waiting room is over just to verify you are human. I think this is caused by the waiting room also

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024

Have you tried #72 ?

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@realcoloride yes I can confirm it works. Sometimes it doesn't but this is basically the best thing I could come with. Sadly their website is extremely complex and you would need to work for Character.AI to fix any more problems

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024

soo should I push your evaluate fix and commit #72? perhaps could you try reinstalling the whole thing and see if it works after?

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@realcoloride yeah, that would be great. Thanks :)

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@JamesVausch did the new update solve your problem? Please let us know and @realcoloride shall close this issue, thanks.

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024

@JamesVausch I think the code you posted includes your auth token. Please remove and make sure in the future that when you post code, it doesn't have any personal info inside it.

My bad, thanks for pointing that out

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024

@JamesVausch did the new update solve your problem? Please let us know and @realcoloride shall close this issue, thanks.

I'll test it later after work

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024

1.1.8 is significantly faster in fetching the chat object but gives out bad string error, 1.1.9 however takes a while to fetch the chat object but it doesn't give you bad string error. either way both needs time before it works normally.
Still good I'll just have the bot login once the chat object has been fetched I think. Tysm for the fix too <3

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@JamesVausch you're welcome and thanks for pointing that out! Glad it works now, and I'll still find some ways to make it faster in the future. :)

from node_characterai.

monckey100 avatar monckey100 commented on July 30, 2024

I'm getting the exact error with the latest build, I'm also using the plus paid version:

1|Amy  | {
1|Amy  |   name: 'SyntaxError',
1|Amy  |   message: 'Bad string',
1|Amy  |   at: 2,
1|Amy  |   text: `{window._cf_chl_opt={cvId: '2',cZone: 'plus.character.ai',cTyp                                                                          e: 'managed',cNounce: '28305',cRay: '7f7559a78f07275f',cHash: 'bfe2a9b8ae9284a',                                                                          cUPMDTk: "\\/chat\\/streaming\\/?__cf_chl_tk=3AIke2BcKopDz0m0uGv_4y5S3RocsZryZMx                                                                          kT6Wa80g-1692143535-0-gaNycGzNDuU",cFPWv: 'b',cTTimeMs: '1000',cMTimeMs: '0',cTp                                                                          lV: 5,cTplB: 'cf',cK: "",fa: "/chat/streaming/?__cf_chl_f_tk=3AIke2BcKopDz0m0uGv                                                                          _4y5S3RocsZryZMxkT6Wa80g-1692143535-0-gaNycGzNDuU",md: "IPQVrFSp4vihKTCptUX0jlD5                                                                          VjB8Kua6xxpwAyankTk-1692143535-0-AWNpLUXudujZVND6WOgeyGmfrIC37zAJyoc-8gc8hM8kn17                                                                          MWZXmoA1VVWKaPI0EH4AKoVUySu5mxkxryY49G42oUY3_5swtfDtLjP7KV0f5t4tftw8GfI3kZ1lOqsc                                                                          tnkbDWmYp7a8fV3PDAnUENNhNGCQHUt9fr_W57e13zsn4R4pbbxjtVjkTHwDTgYgN4RpFFNPCFzcizck                                                                          MWoojXTZ7lERR2Br_JbIhCBBeQ5-r7fKCSMVTAWQIq_BGUz1Mgx90nK_aPbbVI6Nm9ipeo0cL6ZQTfRv                                                                          YdWzPOHrx_AZzZWjtE_k0e0EOt5ektzZSuf6UdFpYIj624MLN8ls0YNw6pHnvX8ECalFWWU8NOPml-6a                                                                          MgfJ9LzyaSYMkoo0YcDycNjYh4fk40ocDmzPVUrZCc3hh3iR8gZ9cIpKuQNTx9IRrsgsy_N0lt1GJ7MY                                                                          6s-furj1hj8zGLBXy9XG9U7HhqfGSUbK8O3RCdCMTx6naTbn_MPqSCZnP7O3LFW8R4p0P3uFZXGRIYFj                                                                          ukBu4rWE4L_FAuY75a9tbDx-36mb-sQKdwk6lq0wksVjeZokdN9SSkmTq-oJjpJqG3ZWCTG3xY2PKldA                                                                          s7y3eh1Az7VaXsZhXNLsbaVILNhyThKz01B5tD6gDHJHJrVTFI-8Q2Hy6R9Udf9IqJZepky6wOXa_r8E                                                                          jRGyPyzIQ4Kcja7rtXDseoLHlw0o970epbdKLtRN2-dhqFnvPMQDAsruG4vJRme2V2jR6bHKVuEgUNqN                                                                          tPwXv2DxymfFRu36-OYq7b0dvsQtvXrwdBqh5dSd97nM7BWEQc9mz53-tGh5GnmYTDqIowFaTiq9okx9                                                                          0bRvKcElsTOxXW5lwW1yAFJ6itt4EOFAgSMPehDoEnki3xN7HAnl-MLW_BWjoqeX7ITHyggrutYQIJDQ                                                                          3VUYGm0bv4lahnKFt3VWCeXsey2aFxTihSE28p-UhmXp_23SGQ77nenNRp9bEdZtUwJhjbRoms4VG_Lv                                                                          61lJwkX9ehPuWux_8d_j_ZERVBxw6dqi2mVfsJGnGlBamMCwVHIrYqNhf0jHnhJAzMtGXeJFN3BDbZ0F                                                                          p8ymzHhFAbEYf-mWx5tmAEoiHDpuOII8no0CdBJYiTKwBxK0MnuGsQMdSubM9Ch-Jy1guZPfCsKatNVF                                                                          _ZoQuL-IZi-Kfc5kYjpuUBtziXfzk6c7mbzDUZC4Si7PCqfmqIGCQzXkdrlBYwVET23bcbsXZESjIkRg                                                                          eqAMXyMkxcN_1jPQBIcQVP7MqDVIHT82ay_zEuqh0BPIHQUyHsIDZCfeuhe1X3kX_OG6TVW0N8WfJ9ki                                                                          -hLzZ50yDrbOdsKVIyg7nG4ZN8gVuUa_xA8tZf6DDZbTniBLZYHF8nmUYy5RFBN33HCyrwe5CWd2L5CY                                                                          ww4C0bAl3kLQsnurSOqakvkUcxkuca75FDSls7NLL0o3sFkisn1Igy87KuwUgW7LBSlnALGCCOdY_XTv                                                                          rgJYH45smd0DR7FK5CDx2GoL53iKiLsgG7_FEfhlowRf72qUcX1OABgYuP7tt905fQwl_LbBrDLssU5g                                                                          laQlJxBKC91IpupUjaUmEyj1_G1ZKa8f8oR9hmEA_Xwufc4FTN_QM1jpdJsqjuDRothI2WwW-LmeCOz2                                                                          u3nqLIUw-BG8NBlBx3ls73EBOhsJIK7CVz8dIM2y0yae06oFBg6rbtmgxFmWx7DUV3tF7bG5xQAXMKv3                                                                          VG-oa4iUqEy78_S003B_qG8PMpQsEq0gOCrODZJhvo8YmOLy8K6x0L7AERL9zWN3QeMjIkVyrGZGFp60                                                                          nYzKOzK8i-hpBmVjcksQtuCdxfdrOtrrU5yXuJ__kddAQ2oTNJA4Ch_yLZ-mfhjcZGUKWkIicCk0rGkY                                                                          0xkoe8DGF-DeKRXxmxHZlbccYyuwefiJebNMcvDIr8gRoTSeY69HQB_S6P-X_Mgx7Nu24H3qmNRtfgAR                                                                          1DyQlu-AiArGHMbvXWkcEZ66dpCaYuWF2HDKwVKi2zDWZuaHsGtep52YQA8hHBLdxLG5DsolL99606Go                                                                          MkHRiLP3fjToJhnXN4_FmAzCh_ZxQlQReEpG_ojS-gRjuAW7-aR0zQH6oBkE0DGpeOyCDoSnMurM-dOl                                                                          d0DXDUXJ0iwex9GbOkjuSZ1rxMaPfmxKUZ4uduUgbN4WxmgW1QWK6TuIp3yqIMUN79K30yXAyeqyPwWV                                                                          g4ZYE8vrJXEAiI97g3mpEiVT89v8jBPgYTlSzuf9Xt57T7_8vIBf1ZDqCSCmi85t4Q61wl3OLIAAWYyZ                                                                          IpdsHXm1Fr3zJWULZ9xerc7bDv5Z6YMA64WkuIPMc7PaGHPDty6tHZQlAaXUvVTA4bvJ-Iz1EIXri8uB                                                                          z72-g3HmKu0oTxc1XGXBa3IF9b5VCXfGQ5AVnS1sLm5qwqretw1k8DTVcBF8SUdGkdRP5rS2YdfBaaYP                                                                          F-aiocz3iGOyeBgKHEquLc_sd--LLabg6nuh5lyknCW2-DdVoRNMeIkuZvs0FrKNomXzCNJnFkowGmzq                                                                          4QyOl-PazQVLgBmOzOqOFG2kJi7XSz-OzCdzgIVhMiOelcve7lghU054VxyZ6G7-qbp-ArwCdA1jr7Qm                                                                          sq6SgILvPsGhB_n67xS2f6yWX6p3W0XJ1idPKb3HoBTilA8jJQNb2iW75MmtLYl0dB6_GjYRdJkmNyKA                                                                          l_NnmqutHsI4-SW1rOoxMGW9-uVKHnPjEJHmVpzRSBIrC0MZ-6-dVt_E34ntewKvpmPSzYdxo15_6HPJ                                                                          0utqgAwu3UzNiAX7UCzSPjZ7m1x11aFt8yISaqMx2jYHWYPeIt7n7e9V6gzT1elpgrY0_kUr8NabATZK                                                                          n4FnwL4azqrh86GWru2vOR-c_TS76BTTsb86iEcoRm9KxJDbqluA0SD-UiMjagk6zH3e3A0iVogO7ly0                                                                          WYyOS03rRvzl19yxWeSSqaFMMFGVTX6m_7TPLECcMYzUKqAYydyghrc1aH7PwrFcgVWLi3Ap30B6LVid                                                                          93R4BELkyccfcZzNiheZ8seFsmMViPE35CXyWv0G21cg2CHuoPkV5bPAk7UT3lKgHNpr1T4LJIilIa6e                                                                          VIeOecttqYSfIoclLPkP4XjAbv0dCZNCq_dW60-_5B6v8P9qAl0rXOTYQmAwmGVLJoCn2gXfhOdmS1dt                                                                          0EtrJ5GB-nA_ZSn5p-Jj8PbNmn4B1pwy92S5MY_mO5UcjVosK1ko5zuG_QkuOlyQ9UDosWH-GdMdYrTw                                                                          _cPXHwlg0E2Vd2Dejm_NuZaQr7QDc-JQU_VR8LfERplJe_HWU3L0fQzjVFJXk2AGl6Lprmbfr-lCR8wJ                                                                          UglRqT0XWjAVF70JLJPSRJ68dV5XiiUUinPNUaxsQU1p5R518SkuOmF63IjwLwjJhwPa0wD4Y_sht6M8                                                                          P6aWqaPXwcrNyv8H5a88265JZ_GV4TVieHTcSnRxhLmsFt1R4Kdhcz1GDUC8sy9lkelg7WksY6samSxi                                                                          Mgys0p6tiUHwcSN3m7j938mQIpFGl_31WX6fk56Z0HDlhGK44-aJaKIuEIlAk-MbBSU7ZGt8LCK4Xpsp                                                                          M1D0EgtSjSNvKOSf61wjyJMXQJ7jtuKlTtYCpMFUZjMqi_zJuiX0LQmRlJh-NEOCFXaFLVAmxBoZ2hpQ                                                                          H-MFe-swM8y7J5EBM5NwJutCUPH7vh7SHNKIWzmMFhXOxza1-pCNaiS9CKO7xI76d244zqr8Pk2dspFF                                                                          YvA-WGJ2Vpe6zALA_HYZgYUM1jJen",cRq: {ru: 'aHR0cHM6Ly9wbHVzLmNoYXJhY3Rlci5haS9jaG                                                                          F0L3N0cmVhbWluZy8=',ra: 'Q2hhcmFjdGVyQUkvMS4wLjAgKGlQaG9uZTsgaU9TIDE0LjQuMjsgU2N                                                                          hbGUvMy4wMCk=',rm: 'UE9TVA==',d: 'qbhV20Fs5fWoUGmMDi/GhSlALP7O+NAkTT7twRwqHdt71X                                                                          YkeP+LJM/kSjF30kmk6ajql9yuj9kgNCaRUjDnKB0YWv5K+KWUAQXNkPtQIZZOmOKdDKvPIxa3FADzst                                                                          kXb4znqB3To30qG2NHznpmQBap2F1nNYmsS4y2SXabyitjkhBf8xNbZpNlY9t/D0c9DsqEFGu+tMb8JN                                                                          7y681fDb7mCtgdZvHff9WBQRhDbnizsEBForF6zHlhog5+r6XJvsNBuprE9mgV9em7KAatuKC6JQVqav                                                                          Iirfg0Q4h9A0e8QG/gZUkDMnqu47VW4+duaKdc1QcFBG+FMhPgcRLSEuhib8T+i1nPdLdha6czMxVHea                                                                          DyhmbeXDT8HId24xdq4MtTYT9Yi4+epsuW9Y8ME3KIoaMyWDywk4gvyB0LUcnlbLOYidTMrVCsomZw7A                                                                          ydV3Yk1LgYXM+ApDbuCziR9fs6P59RLjDLPY+IfXNPHvHlf7LNlS9XoKfJGYKydwpnXdT3xeinLtOURE                                                                          FzvuQmrMDJ8lHOCnFaIloZHe5RnKM=',t: 'MTY5MjE0MzUzNS4yODUwMDA=',cT: Math.floor(Dat                                                                          e.now() / 1000),m: 'DdU0U5AePkyUC07cpAXyicKnjqQ0shfVYIcUMk/o26g=',i1: 'bDFEeG8U9                                                                          l6TlTgPo+20VA==',i2: 'S6mx8ZivYtpTbxGsxUFrLw==',zh: '3MzEEr4KLflmeMqd8UHKRwLX7Al                                                                          BIHlHXAkcvB3KPTI=',uh: 'iqDROoHmWoS5vJW1eIV7QcCnG+o+Jh5QJJjlCQhkqMk=',hh: 'guxl0                                                                          cDtfq5w8RDPZeOzxqHMRcVcYMmnCHawN/xuD5c=',}};var cpo = document.createElement('sc                                                                          ript');cpo.src = '/cdn-cgi/challenge-platform/h/b/orchestrate/chl_page/v1?ray=7f                                                                          7559a78f07275f';window._cf_chl_opt.cOgUHash = location.hash === '' && location.h                                                                          ref.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = loc                                                                          ation.search === '' && location.href.slice(0, location.href.length - window._cf_                                                                          chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.                                                                          history && window.history.replaceState) {var ogU = location.pathname + window._c                                                                          f_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, nul                                                                          l, "\\/chat\\/streaming\\/?__cf_chl_rt_tk=3AIke2BcKopDz0m0uGv_4y5S3RocsZryZMxkT6                                                                          Wa80g-1692143535-0-gaNycGzNDuU" + window._cf_chl_opt.cOgUHash);cpo.onload = func                                                                          tion() {history.replaceState(null, null, ogU);};}document.getElementsByTagName('                                                                          head')[0].appendChild(cpo);}`
1|Amy  | }
1|Amy  |  END CHAT Error!

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@monckey100 could you run npm list | grep node_characterai and paste the output please?

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@monckey100 it does seem you are using the latest version. I'll do some more digging and keep you updated soon. Thanks

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

Ok, here's some info: I went to the url where that was inside that error, and it leads to here:

https://beta.character.ai/cdn-cgi/challenge-platform/h/b/orchestrate/chl_page/v1?ray=7f%207559a78f07275f

it's a valid page, and the beginning of the error starts with the content of that URL.

That's all I have for now, I'll keep you updated.

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

Also this

https://developers.cloudflare.com/fundamentals/get-started/reference/cdn-cgi-endpoint/

It is definitely bot-specific. @realcoloride so much for using puppeteer, cloudflare can even detect bots there now

Tomorrow I will have to open puppeteer in a non-headless mode to see if it's redirecting to that page, if it is, I think it has something to do with a new script that detects bots from Character.AI.

This could also be helpful, @realcoloride:
https://stackoverflow.com/questions/51731848/how-to-avoid-being-detected-as-bot-on-puppeteer-and-phantomjs#54361485

from node_characterai.

monckey100 avatar monckey100 commented on July 30, 2024

Also this

https://developers.cloudflare.com/fundamentals/get-started/reference/cdn-cgi-endpoint/

It is definitely bot-specific. @realcoloride so much for using puppeteer, cloudflare can even detect bots there now

Tomorrow I will have to open puppeteer in a non-headless mode to see if it's redirecting to that page, if it is, I think it has something to do with a new script that detects bots from Character.AI.

I used to get around cloudflare by importing an existing chrome profile, maybe that can be the new solution? it would require better documentation on setup. I'm not sure if it works any longer too.

Also with puppeteer extra stealth

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@monckey100 I've never used chrome regularly as a personal browser, so how would you do that? Thanks for responding by the way

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@monckey100 thanks! I'll check it out tomorrow.

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024

On replit.com I hardcoded the puppeteer path to make it work and not get a cannot find chromium or failed to launch browser process error

puppeteerPath = '/nix/store/x205pbkd5xh5g4iv0g58xjla55has3cx-chromium-108.0.5359.94/bin/chromium-browser';

Also somehow I noticed that when I did npm audit fix -force after installing the latest version of this package it fixed 7 moderate severity vulnerabilities but the package went back to 1.1.3 as can be seen here
I continued using the package and still added the puppeteerPath I mentioned above and it fetches the chat object quickly. I've observed it also consume less RAM. I'm not sure whether if it's the audit fix or the 1.1.3 version itself. I might try 1.1.3 without an audit fix see if it still works the same.

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@JamesVausch thanks for the extra info, I'll try it out soon

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

Yep, that's definitely the problem. I changed headless to false, and the page wasn't loading. Then I checked the page's dev console and a script that loads the characters had a 403 error.

I then went to that URL that gave the error, and it was blocked by cloudflare and there was a recaptcha. The source of this entire issue is that in the package, some code somewhere is requesting a page and parsing the content but throws an error when the content is HTML form (from redirecting to the challenge page).

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

I also tried adding in a chrome profile (wasn't signed in, just a chrome profile from my computer). It didn't work.

This whole issue can be solved if there is a way to stop cloudflare from detecting it is a bot. I have already tried using Firefox instead of chrome for puppeteer, no luck.

I appreciate help from anyone that has a solution to this.

EDIT: After I rolled back to v1.1.3 like @JamesVausch did, my script works! Glad to know this isn't a character.ai specific thing, and it can be fixed.

from node_characterai.

JamesVausch avatar JamesVausch commented on July 30, 2024

I also tried adding in a chrome profile (wasn't signed in, just a chrome profile from my computer). It didn't work.

This whole issue can be solved if there is a way to stop cloudflare from detecting it is a bot. I have already tried using Firefox instead of chrome for puppeteer, no luck.

I appreciate help from anyone that has a solution to this.

EDIT: After I rolled back to v1.1.3 like @JamesVausch did, my script works! Glad to know this isn't a character.ai specific thing, and it can be fixed.

I'm glad to hear it helped, tho how will it affect the newer versions?

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@JamesVausch I'm going to do some digging around in requester.js and see what's changed that possibly makes it do this.

from node_characterai.

realcoloride avatar realcoloride commented on July 30, 2024

Hello again, I suspect that the newer versions have too much checks and redirections that cause long waiting times.

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@realcoloride yep, and it's all in the requester.js file. You could overwrite that file with the one from version 1.1.3 and check it. I'll test it myself too.

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

It's a lot better than overwriting the entire package with 1.1.3, it will remove newer necessary features.

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

@JamesVausch that's awesome to hear! :)

from node_characterai.

Parking-Master avatar Parking-Master commented on July 30, 2024

This issue can be closed since it has been resolved.

from node_characterai.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.