დაწყება ძალიან მარტივია: ბიბლიოთეკის npm-დან ინსტალაცია შეგიძლიათ შემდეგი ბრძანებით: `npm install @huggingface/agents` ბიბლიოთეკა წარმოადგენს `HfAgent` ობიექტს, რომელიც მის მთავარ წვდომის წერტილს წარმოადგენს. მისი ინსტანცირება შეგიძლიათ ასე: `const agent = new HfAgent();` შემდგომში, აგენტის გამოყენება მარტივია. თქვენ გადასცემთ მას ჩვეულებრივ ტექსტურ ბრძანებას და ის დააბრუნებს შეტყობინებებს, რამაც მოცემულ შემთხვევაში შემდეგი კოდი წარმოშვა: `const { code } = await agent.generateCode({ prompt: 'what is 1 + 1' });` შემდეგ კოდის შეფასება შესაძლებელია ასე: `const messages = await agent.evaluateCode({ code });` აგენტის მიერ დაბრუნებული შეტყობინებები არის ობიექტები შემდეგი სტრუქტურით: `[{ type: 'info', message: 'Hello from the agent', data: 'some data' }]` სადაც `message` არის საინფორმაციო ტექსტი, ხოლო `data`-მ შეიძლება შეიცავდეს სტრიქონს ან "blob"-ს. "Blob" შეიძლება გამოყენებულ იქნას სურათების ან აუდიო ფაილების გამოსაჩენად. თუ ენდობით თქვენს გარემოს (იხილეთ გაფრთხილება), ასევე შეგიძლიათ კოდის გაშვება პირდაპირ პრომპტიდან `run` ფუნქციის გამოყენებით: `const messages = await agent.run({ prompt: 'what is 1 + 1' });` ამ ბიბლიოთეკის გამოყენება ამჟამად ნიშნავს თვითნებური კოდის შესრულებას ბრაუზერში (ან Node-ში). ეს უსაფრთხოების რისკს წარმოადგენს და არ უნდა გაკეთდეს არასანდო გარემოში. ჩვენ გირჩევთ გამოიყენოთ `generateCode` და `evaluateCode` `run`-ის ნაცვლად, რათა შეამოწმოთ, თუ რა კოდს აშვებთ. ნაგულისხმევად, HfAgent გამოიყენებს OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5-ის ჰოსტირებულ Inference API-ს, როგორც LLM-ს (დიდი ენობრივი მოდელი). თუმცა, მისი მორგება შესაძლებელია. HfAgent-ის ინსტანცირებისას შეგიძლიათ გადასცეთ მორგებული LLM. ამ კონტექსტში LLM არის ნებისმიერი ასინქრონული ფუნქცია, რომელიც იღებს სტრიქონის შეყვანას და აბრუნებს სტრიქონის დაპირებას (promise). მაგალითად, თუ გაქვთ OpenAI API გასაღები, შეგიძლიათ გამოიყენოთ იგი ასე: `const agent = new HfAgent({ llm: async (prompt) => { const res = await fetch('https://api.openai.com/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${OPENAI_API_KEY}` }, body: JSON.stringify({ model: 'gpt-3.5-turbo', messages: [{ role: 'user', content: prompt }] }) }); const json = await res.json(); return json.choices[0].message.content; } });` Agents.js შექმნილია იმისთვის, რომ ადვილად გაფართოვდეს მორგებული ხელსაწყოებითა და მაგალითებით. მაგალითად, თუ გსურთ დაამატოთ ხელსაწყო, რომელიც ტექსტს ინგლისურიდან გერმანულზე თარგმნის, შეგიძლიათ გააკეთოთ ეს ასე: `const translateTool = { name: 'translate_text', description: 'translates text from english to german', parameters: z.object({ text: z.string().describe('The text to translate'), }), execute: async ({ text }) => { const response = await fetch('https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-de', { headers: { Authorization: `Bearer ${HF_TOKEN}` }, method: 'POST', body: JSON.stringify({ inputs: text }), }); const data = await response.json(); return data[0].translation_text; }, };` ახლა ეს ხელსაწყო შეიძლება დაემატოს ხელსაწყოების სიას თქვენი აგენტის ინიციალიზაციისას. აგენტს ასევე შეუძლია მიიღოს შეყვანის ფაილები, რათა გადასცეს ისინი ხელსაწყოებს. შეგიძლიათ გადასცეთ არჩევითი `FileList` `generateCode`-სა და `evaluateCode`-ს ასე: `const messages = await agent.generateCode({ prompt: 'summarize the document', files: myFiles });` თუ გაქვთ შემდეგი HTML: ` ` მაშინ შეგიძლიათ გააკეთოთ: `const fileInput = document.getElementById('file-input') as HTMLInputElement; const messages = await agent.run({ prompt: 'describe this image in detail', files: fileInput.files as FileList });` რამაც სურათის გადაცემისას შემდეგი კოდი წარმოშვა: `import * as Image from 'https://unpkg.com/@huggingface/[email protected]/dist/image.js'; const image = await Image.Image.fromFile(files[0]); const classification = await Image.classify(image); console.log(classification);` ჩვენ ვმუშაობდით Agents.js-ის დემო ვერსიაზე, რომლის გამოცდაც შეგიძლიათ აქ. ის იმავე Open Assistant 30B მოდელითაა გაძლიერებული, რომელსაც HuggingChat-ზე ვიყენებთ და იყენებს "hub"-იდან გამოძახებულ ხელსაწყოებს. 🚀 მეტი სტატია ჩვენი ბლოგიდან · დარეგისტრირდით ან შეხვიდეთ კომენტარისთვის