| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // ==UserScript==
- // @name 自动总结问题
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description
- // @author lyyyyy
- // @match http://127.0.0.1:17860/
- // @icon https://www.google.com/s2/favicons?sz=64&domain=0.1
- // @run-at document-idle
- // @grant none
- // ==/UserScript==
- app.buttons.push({
- icon: "frequently-asked-questions",
- click: async () => {
- let s = await f_自动总结问题_打开()
- app.temperature = 1.5
- let result = []
- paragraphs = s.split(/[\r\n]+/)
- console.log(paragraphs)
- for (const key in paragraphs) {
- const paragraph = paragraphs[key]
- if (!paragraph) continue
- let json = await send_raw("根据下面这段文字内容,提出问题并回答:\n" + paragraph, '', [{
- "role": "user",
- "content": "根据下面这段文字内容,提出问题并回答:\n崇明岛位于长江入海口,是我国第三大岛,面积1200多平方公里,仅次于台湾岛和海南岛,素有“长江门户、东海瀛洲”之称。崇明岛是我国最大的河口冲积岛屿,是由长江携带的泥沙经过常年累月冲积形成的,岛的形状看起来像个大脚印。",
- },
- {
- "role": "AI",
- "content": "Q:崇明岛的位置在哪里?\nA:崇明岛位于中国长江入海口,是中国最大的河口冲积岛屿。\nQ:崇明岛的面积是多少?\nA:崇明岛的面积是1200多平方公里。\nQ:崇明岛是我国第几大岛?\nA:崇明岛是第三大岛,仅次于台湾岛和海南岛。\nQ:崇明岛的形状是什么?\nA:崇明岛的形状看起来像个大脚印。".replace(/:/g, ': '),
- },])
- json = json.split('\n')
- let Q = ''
- let A = ''
- let QA = []
- json.forEach(l => {
- if (l.startsWith('Q:')) Q = l.replace("Q:", "").trim()
- else if (l.startsWith('A:')) {
- A = l.replace("A:", "").trim()
- QA.push({ Q, A })
- Q = ''
- A = ''
- }
- });
- result.push(
- {
- paragraph: paragraph,
- question: QA
- }
- )
- }
- console.log(result)
- f_自动总结问题_另存为(JSON.stringify(result))
- },
- color: () => app.color,
- description: "自动总结问题"
- })
- f_自动总结问题_另存为 = (stringData) => {
- const blob = new Blob([stringData], {
- type: "text/plain;charset=utf-8"
- })
- const objectURL = URL.createObjectURL(blob)
- const aTag = document.createElement('a')
- aTag.href = objectURL
- aTag.download = Date.now() + "自动总结问题.json"
- aTag.click()
- URL.revokeObjectURL(objectURL)
- }
- f_自动总结问题_打开 = async () => {
- let contents = ''
- await new Promise(resolve => {
- let input = document.createElement('input')
- input.type = 'file'
- input.accept = '.txt'
- input.onchange = function () {
- var file = input.files[0];
- var reader = new FileReader();
- reader.onload = function (e) {
- contents = e.target.result;
- resolve()
- };
- reader.readAsText(file);
- }
- input.click()
- })
- return contents
- }
|