83 lines
2.2 KiB
Markdown
83 lines
2.2 KiB
Markdown
# Mfano
|
|
|
|
Huu ni mfano wa JavaScript kwa MCP Server
|
|
|
|
Hapa kuna mfano wa usajili wa zana ambapo tunasajili zana inayofanya simu ya kuigiza kwa LLM:
|
|
|
|
```javascript
|
|
this.mcpServer.tool(
|
|
'completion',
|
|
{
|
|
model: z.string(),
|
|
prompt: z.string(),
|
|
options: z.object({
|
|
temperature: z.number().optional(),
|
|
max_tokens: z.number().optional(),
|
|
stream: z.boolean().optional()
|
|
}).optional()
|
|
},
|
|
async ({ model, prompt, options }) => {
|
|
console.log(`Processing completion request for model: ${model}`);
|
|
|
|
// Validate model
|
|
if (!this.models.includes(model)) {
|
|
throw new Error(`Model ${model} not supported`);
|
|
}
|
|
|
|
// Emit event for monitoring/metrics
|
|
this.events.emit('request', {
|
|
type: 'completion',
|
|
model,
|
|
timestamp: new Date()
|
|
});
|
|
|
|
// In a real implementation, this would call an AI model
|
|
// Here we just echo back parts of the request with a mock response
|
|
const response = {
|
|
id: `mcp-resp-${Date.now()}`,
|
|
model,
|
|
text: `This is a response to: ${prompt.substring(0, 30)}...`,
|
|
usage: {
|
|
promptTokens: prompt.split(' ').length,
|
|
completionTokens: 20,
|
|
totalTokens: prompt.split(' ').length + 20
|
|
}
|
|
};
|
|
|
|
// Simulate network delay
|
|
await new Promise(resolve => setTimeout(resolve, 500));
|
|
|
|
// Emit completion event
|
|
this.events.emit('completion', {
|
|
model,
|
|
timestamp: new Date()
|
|
});
|
|
|
|
return {
|
|
content: [
|
|
{
|
|
type: 'text',
|
|
text: JSON.stringify(response)
|
|
}
|
|
]
|
|
};
|
|
}
|
|
);
|
|
```
|
|
|
|
## Sakinisha
|
|
|
|
Endesha amri ifuatayo:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
## Endesha
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
**Kiarifu cha Kutotegemea**:
|
|
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii. |