Skip to content

Commit 81e7b7e

Browse files
committed
index,style and script
1 parent a17a68e commit 81e7b7e

File tree

3 files changed

+97
-80
lines changed

3 files changed

+97
-80
lines changed

client/index.html

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,50 +52,49 @@ <h1 class="text-4xl font-extrabold mx-auto lg:text-7xl">
5252
<main class="container" id="form">
5353
<form method="POST" class="mt-3" onsubmit="startResearch(); return false;">
5454
<div class="form-group">
55-
<label for="task" class="agent_question">What would you like me to research next?</label>
56-
<input type="text" name="task" class="form-control" required>
55+
<label for="task" class="agent-question">What would you like me to research next?</label>
56+
<input type="text" id="task" name="task" class="form-control" required>
5757
</div>
5858
<div class="form-group">
5959
<label for="agent">Select your agent:</label>
6060
<div class="row">
6161
<div class="col agent-item">
62-
<label for="defaultAgent"><img src="/static/defaultAgentAvatar.JPG" class="avatar"></label>
62+
<label for="defaultAgent"><img src="/static/defaultAgentAvatar.JPG" class="avatar" alt="Default Agent"></label>
6363
<div class="agent-name"><input type="radio" name="agent" id="defaultAgent"
6464
value="Default Agent">Default Agent</div>
6565
</div>
6666
<div class="col agent-item">
6767
<label for="businessAnalystAgent"><img src="/static/businessAnalystAgentAvatar.png"
68-
class="avatar"></label>
68+
class="avatar" alt="Business Analyst Agent"></label>
6969
<div class="agent-name"><input type="radio" name="agent" id="businessAnalystAgent"
7070
value="Business Analyst Agent">Business Analyst Agent</div>
7171
</div>
7272
<div class="col agent-item">
73-
<label for="financeAgent"><img src="/static/financeAgentAvatar.png" class="avatar"></label>
73+
<label for="financeAgent"><img src="/static/financeAgentAvatar.png" class="avatar" alt="Finance Agent"></label>
7474
<div class="agent-name"><input type="radio" name="agent" id="financeAgent" value="Finance Agent"
7575
required>Finance Agent</div>
7676
</div>
7777
<div class="col agent-item">
78-
<label for="travelAgent"><img src="/static/travelAgentAvatar.png" class="avatar"></label>
78+
<label for="travelAgent"><img src="/static/travelAgentAvatar.png" class="avatar" alt="Travel Agent"></label>
7979
<div class="agent-name"><input type="radio" name="agent" id="travelAgent"
8080
value="Travel Agent">Travel Agent</div>
8181
</div>
8282
<div class="col agent-item">
8383
<label for="academicResearchAgent"><img src="/static/academicResearchAgentAvatar.png"
84-
class="avatar"></label>
84+
class="avatar" alt="Academic Research Agent"></label>
8585
<div class="agent-name"><input type="radio" name="agent" id="academicResearchAgent"
8686
value="Academic Research Agent">Academic Research Agent</div>
8787
</div>
8888
<div class="col agent-item">
89-
<label for="computerSecurityanalyst"><img src="/static/computerSecurityanalystAvatar.png"
90-
class="avatar"></label>
91-
<div class="agent-name"><input type="radio" name="agent" id="computerSecurityanalyst"
89+
<label for="computerSecurityAnalyst"><img src="/static/computerSecurityAnalystAvatar.png"
90+
class="avatar" alt="Computer Security Analyst Agent"></label>
91+
<div class="agent-name"><input type="radio" name="agent" id="computerSecurityAnalyst"
9292
value="Computer Security Analyst Agent">Computer Security Analyst Agent</div>
9393
</div>
9494
</div>
9595
</div>
9696
<div class="form-group">
97-
<label for="report_type" class="agent_question">What type of report would you like me to
98-
generate?</label>
97+
<label for="report_type" class="agent-question">What type of report would you like me to generate?</label>
9998
<select name="report_type" class="form-control" required>
10099
<option value="research_report">Research Report</option>
101100
<option value="resource_report">Resource Report</option>
@@ -118,7 +117,7 @@ <h2>Research Report</h2>
118117
</main>
119118

120119
<footer>
121-
<p>GPT Researcher &copy; 2023 | <a target="_blank" href="https://github.com/assafelovic/gpt-researcher">Github
120+
<p>GPT Researcher &copy; 2023 | <a target="_blank" href="https://github.com/assafelovic/gpt-researcher">GitHub
122121
Page</a></p>
123122
</footer>
124123

client/scripts.js

Lines changed: 81 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,88 @@
1-
const startResearch = () => {
2-
// Clear output and reportContainer divs
3-
4-
document.getElementById("output").innerHTML = "";
5-
document.getElementById("reportContainer").innerHTML = "";
6-
7-
addAgentResponse({output: "🤔 Thinking about research questions for the task..."});
8-
9-
listenToSockEvents();
10-
}
11-
12-
const listenToSockEvents = () => {
13-
const {protocol, host, pathname} = window.location;
14-
const ws_uri = `${protocol === 'https:' ? 'wss:' : 'ws:'}//${host}${pathname}ws`;
15-
const converter = new showdown.Converter();
16-
const socket = new WebSocket(ws_uri);
17-
socket.onmessage = (event) => {
1+
const GPTResearcher = (() => {
2+
const startResearch = () => {
3+
document.getElementById("output").innerHTML = "";
4+
document.getElementById("reportContainer").innerHTML = "";
5+
6+
addAgentResponse({ output: "🤔 Thinking about research questions for the task..." });
7+
8+
listenToSockEvents();
9+
};
10+
11+
const listenToSockEvents = () => {
12+
const { protocol, host, pathname } = window.location;
13+
const ws_uri = `${protocol === 'https:' ? 'wss:' : 'ws:'}//${host}${pathname}ws`;
14+
const converter = new showdown.Converter();
15+
const socket = new WebSocket(ws_uri);
16+
17+
socket.onmessage = (event) => {
1818
const data = JSON.parse(event.data);
1919
if (data.type === 'logs') {
20-
addAgentResponse(data);
20+
addAgentResponse(data);
2121
} else if (data.type === 'report') {
22-
writeReport(data, converter);
22+
writeReport(data, converter);
2323
} else if (data.type === 'path') {
24-
updateDownloadLink(data);
24+
updateDownloadLink(data);
2525
}
26+
};
27+
28+
socket.onopen = (event) => {
29+
const task = document.querySelector('input[name="task"]').value;
30+
const report_type = document.querySelector('select[name="report_type"]').value;
31+
const agent = document.querySelector('input[name="agent"]:checked').value;
32+
33+
const requestData = {
34+
task: task,
35+
report_type: report_type,
36+
agent: agent,
37+
};
38+
39+
socket.send(`start ${JSON.stringify(requestData)}`);
40+
};
41+
};
42+
43+
const addAgentResponse = (data) => {
44+
const output = document.getElementById("output");
45+
output.innerHTML += '<div class="agent_response">' + data.output + '</div>';
46+
output.scrollTop = output.scrollHeight;
47+
output.style.display = "block";
48+
updateScroll();
49+
};
50+
51+
const writeReport = (data, converter) => {
52+
const reportContainer = document.getElementById("reportContainer");
53+
const markdownOutput = converter.makeHtml(data.output);
54+
reportContainer.innerHTML += markdownOutput;
55+
updateScroll();
56+
};
57+
58+
const updateDownloadLink = (data) => {
59+
const path = data.output;
60+
const downloadLink = document.getElementById("downloadLink");
61+
downloadLink.href = path;
62+
};
63+
64+
const updateScroll = () => {
65+
window.scrollTo(0, document.body.scrollHeight);
66+
};
67+
68+
const copyToClipboard = () => {
69+
const textarea = document.createElement('textarea');
70+
textarea.id = 'temp_element';
71+
textarea.style.height = 0;
72+
document.body.appendChild(textarea);
73+
textarea.value = document.getElementById('reportContainer').innerText;
74+
const selector = document.querySelector('#temp_element');
75+
selector.select();
76+
document.execCommand('copy');
77+
document.body.removeChild(textarea);
2678
};
27-
socket.onopen = (event) => {
28-
let task = document.querySelector('input[name="task"]').value;
29-
let report_type = document.querySelector('select[name="report_type"]').value;
30-
let agent = document.querySelector('input[name="agent"]:checked').value; // Corrected line
31-
let data = "start " + JSON.stringify({task: task, report_type: report_type, agent: agent});
32-
socket.send(data);
79+
80+
return {
81+
startResearch,
82+
copyToClipboard,
3383
};
34-
}
35-
36-
const addAgentResponse = (data) => {
37-
const output = document.getElementById("output");
38-
output.innerHTML += '<div class="agent_response">'+data.output+'</div>';
39-
output.scrollTop = output.scrollHeight; // Scroll to the bottom of the output
40-
output.style.display = "block";
41-
updateScroll();
42-
}
43-
44-
const writeReport = (data, converter) => {
45-
const reportContainer = document.getElementById("reportContainer");
46-
const markdownOutput = converter.makeHtml(data.output);
47-
reportContainer.innerHTML += markdownOutput;
48-
updateScroll();
49-
}
50-
51-
const updateDownloadLink = (data) => {
52-
const path = data.output;
53-
const downloadLink = document.getElementById("downloadLink");
54-
downloadLink.href = path;
55-
}
56-
57-
const updateScroll = () => {
58-
window.scrollTo(0,document.body.scrollHeight);
59-
}
60-
61-
const copyToClipboard = () => {
62-
const textarea = document.createElement('textarea');
63-
textarea.id = 'temp_element';
64-
textarea.style.height = 0;
65-
document.body.appendChild(textarea);
66-
textarea.value = document.getElementById('reportContainer').innerText;
67-
const selector = document.querySelector('#temp_element');
68-
selector.select();
69-
document.execCommand('copy');
70-
document.body.removeChild(textarea);
71-
}
84+
})();
85+
86+
// Initialize the research process
87+
GPTResearcher.startResearch();
88+

client/styles.css

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ footer {
9999
text-align: center;
100100
padding: 10px 0;
101101
}
102+
102103
.margin-div {
103104
margin-top: 20px;
104105
margin-bottom: 20px;
@@ -112,19 +113,19 @@ footer {
112113
border-radius: 12px;
113114
}
114115

115-
#output {
116+
#output {
116117
height: 300px;
117118
overflow: auto;
118119
padding: 10px;
119120
margin-bottom: 10px;
120121
margin-top: 10px;
121122
}
123+
122124
#reportContainer {
123125
background-color: rgba(255,255,255,0.1);
124126
border: none;
125127
color: #fff;
126128
transition: all .3s ease-in-out;
127129
padding: 10px;
128130
border-radius: 12px;
129-
130-
}
131+
}

0 commit comments

Comments
 (0)