自动总结问题.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // ==UserScript==
  2. // @name 自动总结问题
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description
  6. // @author lyyyyy
  7. // @match http://127.0.0.1:17860/
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=0.1
  9. // @run-at document-idle
  10. // @grant none
  11. // ==/UserScript==
  12. app.buttons.push({
  13. icon: "frequently-asked-questions",
  14. click: async () => {
  15. let s = await f_自动总结问题_打开()
  16. app.temperature = 1.5
  17. let result = []
  18. paragraphs = s.split(/[\r\n]+/)
  19. console.log(paragraphs)
  20. for (const key in paragraphs) {
  21. const paragraph = paragraphs[key]
  22. if (!paragraph) continue
  23. let json = await send_raw("根据下面这段文字内容,提出问题并回答:\n" + paragraph, '', [{
  24. "role": "user",
  25. "content": "根据下面这段文字内容,提出问题并回答:\n崇明岛位于长江入海口,是我国第三大岛,面积1200多平方公里,仅次于台湾岛和海南岛,素有“长江门户、东海瀛洲”之称。崇明岛是我国最大的河口冲积岛屿,是由长江携带的泥沙经过常年累月冲积形成的,岛的形状看起来像个大脚印。",
  26. },
  27. {
  28. "role": "AI",
  29. "content": "Q:崇明岛的位置在哪里?\nA:崇明岛位于中国长江入海口,是中国最大的河口冲积岛屿。\nQ:崇明岛的面积是多少?\nA:崇明岛的面积是1200多平方公里。\nQ:崇明岛是我国第几大岛?\nA:崇明岛是第三大岛,仅次于台湾岛和海南岛。\nQ:崇明岛的形状是什么?\nA:崇明岛的形状看起来像个大脚印。".replace(/:/g, ': '),
  30. },])
  31. json = json.split('\n')
  32. let Q = ''
  33. let A = ''
  34. let QA = []
  35. json.forEach(l => {
  36. if (l.startsWith('Q:')) Q = l.replace("Q:", "").trim()
  37. else if (l.startsWith('A:')) {
  38. A = l.replace("A:", "").trim()
  39. QA.push({ Q, A })
  40. Q = ''
  41. A = ''
  42. }
  43. });
  44. result.push(
  45. {
  46. paragraph: paragraph,
  47. question: QA
  48. }
  49. )
  50. }
  51. console.log(result)
  52. f_自动总结问题_另存为(JSON.stringify(result))
  53. },
  54. color: () => app.color,
  55. description: "自动总结问题"
  56. })
  57. f_自动总结问题_另存为 = (stringData) => {
  58. const blob = new Blob([stringData], {
  59. type: "text/plain;charset=utf-8"
  60. })
  61. const objectURL = URL.createObjectURL(blob)
  62. const aTag = document.createElement('a')
  63. aTag.href = objectURL
  64. aTag.download = Date.now() + "自动总结问题.json"
  65. aTag.click()
  66. URL.revokeObjectURL(objectURL)
  67. }
  68. f_自动总结问题_打开 = async () => {
  69. let contents = ''
  70. await new Promise(resolve => {
  71. let input = document.createElement('input')
  72. input.type = 'file'
  73. input.accept = '.txt'
  74. input.onchange = function () {
  75. var file = input.files[0];
  76. var reader = new FileReader();
  77. reader.onload = function (e) {
  78. contents = e.target.result;
  79. resolve()
  80. };
  81. reader.readAsText(file);
  82. }
  83. input.click()
  84. })
  85. return contents
  86. }
粤ICP备19079148号