Skip to content

Commit

Permalink
Merge pull request #21 from Martin-lc/dev-xiyue
Browse files Browse the repository at this point in the history
branch coverage for llm.js
  • Loading branch information
Martin-lc authored Dec 10, 2023
2 parents 883c6ff + 2f60f2d commit e942bd9
Show file tree
Hide file tree
Showing 9 changed files with 1,023 additions and 763 deletions.
19 changes: 8 additions & 11 deletions content_optimizer/llm.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,12 @@ async function atomChat(text) {
* @param {string|null} [targetLanguage=null] - Optional. The ISO language code to translate the content into. If not provided or null, the content remains in the original language.
* @return {Promise<string>} The summarized and possibly translated version of the input text.
*/
async function summarizeText(text, maxLength = null, targetLanguage = null) {
async function summarizeText(text, maxLength = null) {
if (!text) {
throw new Error('Input text cannot be empty.');
}

const lengthConstraint = maxLength ? ` Please ensure the summary does not exceed ${maxLength} characters.` : '';
const translationInstruction = targetLanguage ? ` Then, translate the summary to ${targetLanguage}.` : '';

const humanTemplate = '{input}';
const template = `
Expand All @@ -44,7 +43,7 @@ async function summarizeText(text, maxLength = null, targetLanguage = null) {
--------
{input}
--------
Provide a concise summary of the abstract.${lengthConstraint}${translationInstruction}`;
Provide a concise summary of the abstract.${lengthConstraint}$`;
const chatPrompt = ChatPromptTemplate.fromMessages([
['system', template],
['human', humanTemplate],
Expand All @@ -62,7 +61,7 @@ async function summarizeText(text, maxLength = null, targetLanguage = null) {
* @return {Promise<Array<Object>>} An array of objects where each object contains
* the ID, source (always 'pubmed'), and summarized content of each article.
*/
async function summarizePubmedOutput(pubmedData, maxLength = null, targetLanguage = null) {
async function summarizePubmedOutput(pubmedData, maxLength = null) {
const summarizedResults = [];
console.log('summarizing pubmed data...');

Expand All @@ -78,13 +77,12 @@ async function summarizePubmedOutput(pubmedData, maxLength = null, targetLanguag
throw new Error(`Invalid text in PubMed data at index ${i}`);
}
const concatenatedText = pubmedData[i].join(' ');
const summary = await summarizeText(concatenatedText, maxLength, targetLanguage);
const summary_trimmed = summary.replace(/\n+/g, ' ').trim();
const summary = await summarizeText(concatenatedText, maxLength);

summarizedResults.push({
id: 0,
source: 'pubmed',
content: summary_trimmed,
content: summary,
});
}
console.log('Done');
Expand All @@ -97,7 +95,7 @@ async function summarizePubmedOutput(pubmedData, maxLength = null, targetLanguag
* @return {Promise<Array<Object>>} An array of objects where each object contains
* the title, source (always 'wikipedia'), and summarized content of each article.
*/
async function summarizeWikipediaOutput(wikipediaData, maxLength = null, targetLanguage = null) {
async function summarizeWikipediaOutput(wikipediaData, maxLength = null) {

if (!Array.isArray(wikipediaData)) {
// If not an array, throw a custom error
Expand All @@ -108,13 +106,12 @@ async function summarizeWikipediaOutput(wikipediaData, maxLength = null, targetL
console.log('summarizing wiki data...');

for (const entry of wikipediaData) {
const summary = await summarizeText(entry.content, maxLength, targetLanguage);
const summary_trimmed = summary.replace(/\n+/g, ' ').trim();
const summary = await summarizeText(entry.content, maxLength);

summarizedResults.push({
title: entry.title,
source: 'wikipedia',
content: summary_trimmed,
content: summary,
});
}
console.log('Done');
Expand Down
291 changes: 47 additions & 244 deletions reports/coverage/clover.xml
Original file line number Diff line number Diff line change
@@ -1,247 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1701977811387" clover="3.2.0">
<project timestamp="1701977811387" name="All files">
<metrics statements="214" coveredstatements="186" conditionals="36" coveredconditionals="26" methods="43" coveredmethods="43" elements="293" coveredelements="255" complexity="0" loc="214" ncloc="214" packages="4" files="5" classes="5"/>
<package name="client_info_mgt">
<metrics statements="38" coveredstatements="35" conditionals="4" coveredconditionals="2" methods="10" coveredmethods="10"/>
<file name="client_info_mgt.js" path="/Users/martin/Desktop/projects/2023_COMS4156/client_info_mgt/client_info_mgt.js">
<metrics statements="38" coveredstatements="35" conditionals="4" coveredconditionals="2" methods="10" coveredmethods="10"/>
<line num="1" count="1" type="stmt"/>
<line num="2" count="1" type="stmt"/>
<line num="5" count="1" type="stmt"/>
<line num="6" count="1" type="stmt"/>
<line num="20" count="1" type="stmt"/>
<line num="22" count="6" type="stmt"/>
<line num="24" count="6" type="stmt"/>
<line num="31" count="6" type="stmt"/>
<line num="33" count="6" type="stmt"/>
<line num="34" count="6" type="stmt"/>
<line num="35" count="6" type="stmt"/>
<line num="46" count="1" type="stmt"/>
<line num="47" count="1" type="stmt"/>
<line num="48" count="1" type="stmt"/>
<line num="50" count="1" type="stmt"/>
<line num="59" count="1" type="stmt"/>
<line num="60" count="1" type="stmt"/>
<line num="61" count="1" type="stmt"/>
<line num="74" count="1" type="stmt"/>
<line num="75" count="6" type="stmt"/>
<line num="76" count="6" type="stmt"/>
<line num="79" count="6" type="stmt"/>
<line num="91" count="1" type="stmt"/>
<line num="92" count="8" type="stmt"/>
<line num="93" count="8" type="stmt"/>
<line num="94" count="8" type="stmt"/>
<line num="110" count="1" type="stmt"/>
<line num="111" count="5" type="stmt"/>
<line num="116" count="5" type="cond" truecount="1" falsecount="1"/>
<line num="117" count="5" type="cond" truecount="1" falsecount="1"/>
<line num="118" count="5" type="stmt"/>
<line num="120" count="0" type="stmt"/>
<line num="123" count="5" type="stmt"/>
<line num="125" count="0" type="stmt"/>
<line num="126" count="0" type="stmt"/>
<line num="129" count="5" type="stmt"/>
<line num="131" count="5" type="stmt"/>
<line num="135" count="1" type="stmt"/>
</file>
</package>
<package name="content_fetcher">
<metrics statements="71" coveredstatements="71" conditionals="10" coveredconditionals="9" methods="11" coveredmethods="11"/>
<file name="pubmed.js" path="/Users/martin/Desktop/projects/2023_COMS4156/content_fetcher/pubmed.js">
<metrics statements="47" coveredstatements="47" conditionals="2" coveredconditionals="2" methods="9" coveredmethods="9"/>
<line num="2" count="2" type="stmt"/>
<line num="20" count="2" type="cond" truecount="1" falsecount="0"/>
<line num="22" count="9" type="stmt"/>
<line num="23" count="9" type="stmt"/>
<line num="24" count="9" type="stmt"/>
<line num="25" count="9" type="stmt"/>
<line num="26" count="9" type="stmt"/>
<line num="28" count="9" type="stmt"/>
<line num="38" count="9" type="stmt"/>
<line num="39" count="9" type="stmt"/>
<line num="41" count="9" type="stmt"/>
<line num="42" count="9" type="stmt"/>
<line num="44" count="9" type="stmt"/>
<line num="45" count="9" type="stmt"/>
<line num="48" count="9" type="stmt"/>
<line num="49" count="42" type="stmt"/>
<line num="51" count="9" type="stmt"/>
<line num="69" count="2" type="stmt"/>
<line num="70" count="21" type="stmt"/>
<line num="71" count="21" type="stmt"/>
<line num="72" count="21" type="stmt"/>
<line num="73" count="21" type="stmt"/>
<line num="74" count="21" type="stmt"/>
<line num="76" count="21" type="stmt"/>
<line num="86" count="21" type="stmt"/>
<line num="87" count="21" type="stmt"/>
<line num="89" count="21" type="stmt"/>
<line num="90" count="21" type="stmt"/>
<line num="91" count="21" type="stmt"/>
<line num="93" count="21" type="stmt"/>
<line num="94" count="21" type="stmt"/>
<line num="95" count="81" type="stmt"/>
<line num="96" count="81" type="stmt"/>
<line num="97" count="81" type="stmt"/>
<line num="99" count="21" type="stmt"/>
<line num="117" count="2" type="cond" truecount="1" falsecount="0"/>
<line num="118" count="4" type="stmt"/>
<line num="119" count="4" type="stmt"/>
<line num="123" count="4" type="stmt"/>
<line num="125" count="20" type="stmt"/>
<line num="126" count="20" type="stmt"/>
<line num="127" count="20" type="stmt"/>
<line num="128" count="20" type="stmt"/>
<line num="131" count="4" type="stmt"/>
<line num="132" count="4" type="stmt"/>
<line num="133" count="4" type="stmt"/>
<line num="136" count="2" type="stmt"/>
</file>
<file name="wikipedia.js" path="/Users/martin/Desktop/projects/2023_COMS4156/content_fetcher/wikipedia.js">
<metrics statements="24" coveredstatements="24" conditionals="8" coveredconditionals="7" methods="2" coveredmethods="2"/>
<line num="2" count="7" type="stmt"/>
<line num="4" count="7" type="cond" truecount="2" falsecount="0"/>
<line num="5" count="1" type="stmt"/>
<line num="6" count="1" type="stmt"/>
<line num="9" count="6" type="stmt"/>
<line num="10" count="6" type="stmt"/>
<line num="11" count="6" type="stmt"/>
<line num="12" count="5" type="stmt"/>
<line num="14" count="5" type="cond" truecount="5" falsecount="0"/>
<line num="15" count="1" type="stmt"/>
<line num="16" count="1" type="stmt"/>
<line num="19" count="32" type="stmt"/>
<line num="21" count="4" type="stmt"/>
<line num="22" count="4" type="stmt"/>
<line num="23" count="4" type="stmt"/>
<line num="25" count="4" type="stmt"/>
<line num="26" count="4" type="stmt"/>
<line num="28" count="4" type="stmt"/>
<line num="29" count="32" type="stmt"/>
<line num="34" count="4" type="stmt"/>
<line num="35" count="4" type="stmt"/>
<line num="37" count="1" type="stmt"/>
<line num="38" count="1" type="stmt"/>
<line num="42" count="1" type="stmt"/>
</file>
</package>
<package name="content_optimizer">
<metrics statements="42" coveredstatements="19" conditionals="18" coveredconditionals="11" methods="4" coveredmethods="4"/>
<file name="llm.js" path="/Users/martin/Desktop/projects/2023_COMS4156/content_optimizer/llm.js">
<metrics statements="42" coveredstatements="19" conditionals="18" coveredconditionals="11" methods="4" coveredmethods="4"/>
<line num="1" count="1" type="stmt"/>
<line num="2" count="1" type="stmt"/>
<line num="3" count="1" type="stmt"/>
<line num="5" count="1" type="stmt"/>
<line num="8" count="1" type="stmt"/>
<line num="18" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="19" count="1" type="stmt"/>
<line num="21" count="1" type="stmt"/>
<line num="22" count="1" type="stmt"/>
<line num="33" count="1" type="cond" truecount="1" falsecount="1"/>
<line num="34" count="1" type="stmt"/>
<line num="37" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="38" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="40" count="0" type="stmt"/>
<line num="41" count="0" type="stmt"/>
<line num="48" count="0" type="stmt"/>
<line num="52" count="0" type="stmt"/>
<line num="53" count="0" type="stmt"/>
<line num="56" count="0" type="stmt"/>
<line num="66" count="1" type="stmt"/>
<line num="67" count="1" type="stmt"/>
<line num="69" count="1" type="stmt"/>
<line num="70" count="1" type="cond" truecount="1" falsecount="1"/>
<line num="72" count="1" type="stmt"/>
<line num="76" count="0" type="stmt"/>
<line num="77" count="0" type="stmt"/>
<line num="78" count="0" type="stmt"/>
<line num="79" count="0" type="stmt"/>
<line num="81" count="0" type="stmt"/>
<line num="87" count="0" type="stmt"/>
<line num="88" count="0" type="stmt"/>
<line num="99" count="1" type="cond" truecount="1" falsecount="1"/>
<line num="101" count="1" type="stmt"/>
<line num="104" count="0" type="stmt"/>
<line num="105" count="0" type="stmt"/>
<line num="107" count="0" type="stmt"/>
<line num="108" count="0" type="stmt"/>
<line num="109" count="0" type="stmt"/>
<line num="111" count="0" type="stmt"/>
<line num="117" count="0" type="stmt"/>
<line num="118" count="0" type="stmt"/>
<line num="121" count="1" type="stmt"/>
</file>
</package>
<package name="content_ranker">
<metrics statements="63" coveredstatements="61" conditionals="4" coveredconditionals="4" methods="18" coveredmethods="18"/>
<file name="content_ranker.js" path="/Users/martin/Desktop/projects/2023_COMS4156/content_ranker/content_ranker.js">
<metrics statements="63" coveredstatements="61" conditionals="4" coveredconditionals="4" methods="18" coveredmethods="18"/>
<line num="1" count="4" type="stmt"/>
<line num="2" count="4" type="stmt"/>
<line num="3" count="4" type="stmt"/>
<line num="4" count="4" type="stmt"/>
<line num="7" count="4" type="stmt"/>
<line num="10" count="4" type="stmt"/>
<line num="20" count="8" type="stmt"/>
<line num="21" count="8" type="stmt"/>
<line num="22" count="6" type="stmt"/>
<line num="24" count="2" type="stmt"/>
<line num="26" count="2" type="stmt"/>
<line num="38" count="5" type="stmt"/>
<line num="49" count="8" type="stmt"/>
<line num="50" count="8" type="cond" truecount="2" falsecount="0"/>
<line num="51" count="4" type="stmt"/>
<line num="53" count="4" type="stmt"/>
<line num="54" count="4" type="stmt"/>
<line num="55" count="4" type="stmt"/>
<line num="56" count="4" type="stmt"/>
<line num="58" count="0" type="stmt"/>
<line num="59" count="0" type="stmt"/>
<line num="65" count="4" type="stmt"/>
<line num="66" count="4" type="stmt"/>
<line num="67" count="8" type="stmt"/>
<line num="69" count="4" type="stmt"/>
<line num="78" count="3" type="stmt"/>
<line num="79" count="3" type="stmt"/>
<line num="80" count="3" type="stmt"/>
<line num="81" count="3" type="stmt"/>
<line num="82" count="65" type="stmt"/>
<line num="83" count="2" type="stmt"/>
<line num="84" count="2" type="stmt"/>
<line num="85" count="7" type="stmt"/>
<line num="89" count="1" type="stmt"/>
<line num="91" count="1" type="stmt"/>
<line num="92" count="3" type="stmt"/>
<line num="93" count="3" type="stmt"/>
<line num="105" count="121" type="stmt"/>
<line num="106" count="121" type="stmt"/>
<line num="107" count="121" type="stmt"/>
<line num="108" count="604" type="cond" truecount="2" falsecount="0"/>
<line num="110" count="121" type="stmt"/>
<line num="120" count="4" type="stmt"/>
<line num="121" count="4" type="stmt"/>
<line num="122" count="112" type="stmt"/>
<line num="127" count="4" type="stmt"/>
<line num="129" count="4" type="stmt"/>
<line num="140" count="2" type="stmt"/>
<line num="141" count="6" type="stmt"/>
<line num="142" count="6" type="stmt"/>
<line num="143" count="6" type="stmt"/>
<line num="144" count="6" type="stmt"/>
<line num="150" count="6" type="stmt"/>
<line num="159" count="1" type="stmt"/>
<line num="160" count="1" type="stmt"/>
<line num="161" count="1" type="stmt"/>
<line num="162" count="1" type="stmt"/>
<line num="163" count="1" type="stmt"/>
<line num="164" count="1" type="stmt"/>
<line num="165" count="1" type="stmt"/>
<line num="166" count="1" type="stmt"/>
<line num="167" count="1" type="stmt"/>
<line num="170" count="4" type="stmt"/>
</file>
</package>
<coverage generated="1702066048666" clover="3.2.0">
<project timestamp="1702066048666" name="All files">
<metrics statements="41" coveredstatements="41" conditionals="17" coveredconditionals="17" methods="5" coveredmethods="5" elements="63" coveredelements="63" complexity="0" loc="41" ncloc="41" packages="1" files="1" classes="1"/>
<file name="llm.js" path="/Users/xiyuewang/Documents/Unclutter/Columbia 2023-2024/COMS 4156/2023_COMS4156/content_optimizer/llm.js">
<metrics statements="41" coveredstatements="41" conditionals="17" coveredconditionals="17" methods="5" coveredmethods="5"/>
<line num="1" count="1" type="stmt"/>
<line num="2" count="1" type="stmt"/>
<line num="3" count="1" type="stmt"/>
<line num="5" count="1" type="stmt"/>
<line num="8" count="1" type="stmt"/>
<line num="18" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="19" count="1" type="stmt"/>
<line num="21" count="1" type="stmt"/>
<line num="22" count="1" type="stmt"/>
<line num="33" count="7" type="cond" truecount="2" falsecount="0"/>
<line num="34" count="1" type="stmt"/>
<line num="37" count="6" type="cond" truecount="2" falsecount="0"/>
<line num="39" count="6" type="stmt"/>
<line num="40" count="6" type="stmt"/>
<line num="47" count="6" type="stmt"/>
<line num="51" count="6" type="stmt"/>
<line num="52" count="6" type="stmt"/>
<line num="55" count="6" type="stmt"/>
<line num="65" count="3" type="stmt"/>
<line num="66" count="3" type="stmt"/>
<line num="68" count="3" type="stmt"/>
<line num="69" count="3" type="cond" truecount="2" falsecount="0"/>
<line num="71" count="1" type="stmt"/>
<line num="75" count="2" type="stmt"/>
<line num="76" count="3" type="cond" truecount="4" falsecount="0"/>
<line num="77" count="1" type="stmt"/>
<line num="79" count="2" type="stmt"/>
<line num="80" count="2" type="stmt"/>
<line num="82" count="2" type="stmt"/>
<line num="88" count="1" type="stmt"/>
<line num="89" count="1" type="stmt"/>
<line num="100" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="102" count="1" type="stmt"/>
<line num="105" count="1" type="stmt"/>
<line num="106" count="1" type="stmt"/>
<line num="108" count="1" type="stmt"/>
<line num="109" count="2" type="stmt"/>
<line num="111" count="2" type="stmt"/>
<line num="117" count="1" type="stmt"/>
<line num="118" count="1" type="stmt"/>
<line num="121" count="1" type="stmt"/>
</file>
</project>
</coverage>
Loading

0 comments on commit e942bd9

Please sign in to comment.