Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/thatstupidcomputer / packages/discovery/providers/mistral/answers.ts |
| Date | Not specified in source |
| Repository | Janady13/thatstupidcomputer |
| Revision | 57555cde46910102dd25d6c1c1fb2c359e9655bd |
| Branch | main |
| Path or archive member | packages/discovery/providers/mistral/answers.ts |
| Original SHA-256 | 3f25a3ac216cfe7951fd9aa043c4685c33c0c4e811a1a7b22245ec4975bb3a5a |
| Git blob SHA | 8ccd1cec396fede011d1d8eb5c62715dc6e2bd21 |
| Reading-copy SHA-256 | 3f25a3ac216cfe7951fd9aa043c4685c33c0c4e811a1a7b22245ec4975bb3a5a |
Recovered source transcript
Download complete source text ↓19 lines · 1.2 KB
import {record,records,citationUrl,type AnswerAdapter,Citation} from '../../protocol.ts';
export const mistralAnswers:AnswerAdapter={
endpoint:'https://api.mistral.ai/v1/conversations',auth:'bearer',
build:(model,query)=>({model,inputs:query,tools:[{type:'web_search'}],completion_args:{max_tokens:1200},store:false,stream:false}),
parse:value=>{
if(!record(value)||!Array.isArray(value.outputs))return;
const output=records(value.outputs),messages=output.filter(v=>v.type==='message.output');
const texts:string[]=[],citations:Citation[]=[];
for(const message of messages) for(const item of records(message.content)) {
if(item.type==='text'&&typeof item.text==='string') texts.push(item.text);
const url=citationUrl(item.url);
if(item.type==='tool_reference'&&item.tool==='web_search'&&url)citations.push({url,...(typeof item.title==='string'?{title:item.title}:{})});
}
if(!texts.join('').trim())return;
const model=messages.at(-1)?.model;
return {text:texts.join('\n'),citations,searchExecuted:output.some(v=>v.type==='tool.execution'&&v.name==='web_search'),...(typeof model==='string'?{responseModel:model}:{})};
},
};