• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות

    יצירת בינה מלאכותית טלפונית מדריך

    מתוזמן נעוץ נעול הועבר שאלות ועזרה הדדית
    31 פוסטים 8 כותבים 1.1k צפיות 3 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • י מנותק
      יוסף המתכנת
      נערך לאחרונה על ידי

      יצירת השרת ע"י nodejs
      שלב א'
      לפתוח את "פנקס הרשימות"
      שלב ב' לכתוב בו את הקוד הבא ולשמור בשם "grok-transcribe-gpt-server.js"
      הקוד

      require('dotenv').config();
      const express = require('express');
      const multer = require('multer');
      const fs = require('fs');
      const axios = require('axios');
      const { SpeechClient } = require('@google-cloud/speech');
      
      const app = express();
      const upload = multer({ dest: 'uploads/' });
      const speechClient = new SpeechClient();
      
      const PORT = process.env.PORT || 3000;
      const OPENAI_API_KEY =פה שים את ה API';
      const DEFAULT_LANG = 'he-IL';
      
      function guessEncoding(mimetype) {
        if (!mimetype) return undefined;
        mimetype = mimetype.toLowerCase();
        if (mimetype.includes('wav')) return 'LINEAR16';
        if (mimetype.includes('x-wav')) return 'LINEAR16';
        if (mimetype.includes('mpeg') || mimetype.includes('mp3')) return 'MP3';
        if (mimetype.includes('ogg')) return 'OGG_OPUS';
        if (mimetype.includes('webm')) return 'WEBM_OPUS';
        if (mimetype.includes('flac')) return 'FLAC';
        return undefined;
      }
      
      app.get('/', (req, res) => {
        res.send('Server is running. POST /transcribe with form-data field `audio`.');
      });
      
      app.post('/transcribe', upload.single('audio'), async (req, res) => {
        if (!req.file) {
          return res.status(400).json({ error: 'No audio file uploaded.' });
        }
      
        const filepath = req.file.path;
        const mimetype = req.file.mimetype;
        const lang = req.query.lang || DEFAULT_LANG;
      
        try {
          const fileBuffer = fs.readFileSync(filepath);
          const audioBytes = fileBuffer.toString('base64');
      
          const encoding = guessEncoding(mimetype);
          const request = {
            audio: { content: audioBytes },
            config: {
              ...(encoding ? { encoding } : {}),
              languageCode: lang,
              enableAutomaticPunctuation: true,
            },
          };
      
          const [response] = await speechClient.recognize(request);
      
          let transcription = '';
          if (response && response.results) {
            transcription = response.results
              .map(r => (r.alternatives && r.alternatives[0]) ? r.alternatives[0].transcript : '')
              .join('\n')
              .trim();
          }
      
          if (!transcription) transcription = '';
      
          const openaiPayload = {
            model: 'gpt-3.5-turbo',
            messages: [
              { role: 'system', content: 'You are a helpful assistant.' },
              { role: 'user', content: `Transcription (language ${lang}):\n${transcription}` }
            ],
            max_tokens: 800,
            temperature: 0.2,
          };
      
          const openaiRes = await axios.post('https://api.openai.com/v1/chat/completions', openaiPayload, {
            headers: {
              'Content-Type': 'application/json',
              'Authorization': `Bearer ${OPENAI_API_KEY}`,
            },
          });
      
          let assistantReply = '';
          try {
            const choices = openaiRes.data.choices || [];
            if (choices.length > 0 && choices[0].message) {
              assistantReply = choices[0].message.content.trim();
            } else {
              assistantReply = JSON.stringify(openaiRes.data);
            }
          } catch (err) {
            assistantReply = '';
          }
      
          res.json({ transcription, gpt_reply: assistantReply });
        } catch (err) {
          res.status(500).json({ error: 'Server error', details: err.message });
        } finally {
          try { fs.unlinkSync(filepath); } catch (e) { }
        }
      });
      
      app.listen(PORT, () => {
        console.log(`Server listening on port ${PORT}`);
      });
      
      

      לאחר מכן ללכת במנהל הקבצים למיקום של הקובץ ואז בשורת המיקום של הקובץ למחוק את מה שכתוב ולכתוב "CMD" ווללחוץ אנטר
      6a40e6fa-92c4-444c-b407-dac3b407085b-image.png
      (כפי שרואים בתמונה איפה לכתוב CMD ואת הקובץ באותו מיקום)

      ואז יפתח הטרמינל באותו מיקום
      fe11ba06-8cee-4223-a24b-c0311f950329-image.png
      ואז לכתוב בטרמינל
      pip install flask openai SpeechRecognition pydub
      וללחוץ אנטר ואז לאחר שזה יגמור לרוץ לכתוב:
      npm install express multer dotenv axios @google-cloud/speech
      וללחוץ אנטר ואז לאחר שזה יגמור לרוץ לכתוב:
      node ngrok-transcribe-gpt-server.js
      ואז לפתוח טרמינל חדש ריק לא לסגור את הישן (לכתוב CMD במיקום של הקובץ כמו מקודם)
      ולכתוב
      ngrok http 3000
      ואז להעתיק את כתובת השרת (כתבנו איפה זה בתחילת המדריך בשלב ה' או ד') ולהמשיך משאר המדריך הראשון

      י כ 3 תגובות תגובה אחרונה תגובה ציטוט 0
      • י מנותק
        יעקב קליין @יוסף המתכנת
        נערך לאחרונה על ידי יעקב קליין

        @יוסף-המתכנת כתב ביצירת בינה מלאכותית טלפונית מדריך:

        שורת המיקום

        מה עם ווינדס 10 ?

        י תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • י מנותק
          יוסף המתכנת @יעקב קליין
          נערך לאחרונה על ידי

          @יעקב-קליין אותו דבר בדיוק!

          י תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • י מנותק
            יעקב קליין @יוסף המתכנת
            נערך לאחרונה על ידי

            @יוסף-המתכנת עשיתי אנטר אבל לא מסתדר אחר כך

            י תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • י מנותק
              יוסף המתכנת @יעקב קליין
              נערך לאחרונה על ידי

              @יעקב-קליין באיזה שלב אתה
              הוצאת - API
              איפה אתה?

              י תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • י מנותק
                יוסף המתכנת @יוסף המתכנת
                נערך לאחרונה על ידי

                אל תדלג על שום שלב במדריך עם תדלג זה לא יעבוד לך

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • י מנותק
                  יעקב קליין @יוסף המתכנת
                  נערך לאחרונה על ידי

                  @יוסף-המתכנת כתב ביצירת בינה מלאכותית טלפונית מדריך:

                  ואז לכתוב בטרמינל

                  פה אני אוחז

                  י כ 2 תגובות תגובה אחרונה תגובה ציטוט 0
                  • י מנותק
                    יוסף המתכנת
                    נערך לאחרונה על ידי

                    א' יש לך API מOpenAI (הסברתי איך להוציא)?
                    ב'הכנסת את API במקום המתאים בקובץ?
                    ג' פתח את טרמינל כמו בהסבר?
                    ד' כתבת בטרמינל את מה שאמרתי לכתוב?
                    ה' את כל השלבים הקודמים עשית?
                    ו' התקנת "נגרוק"?

                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • י מנותק
                      יוסף המתכנת @יעקב קליין
                      נערך לאחרונה על ידי

                      @יעקב-קליין פתחתי צ'אט למי שלא הצליח לעשות כמו ההסבר במדריך בקישור הזה
                      https://f2.freeivr.co.il/topic/18721/יצירת-בינה-מלאכותית-טלפונית-כמו-במדריך-של-יוסף-המתכנת/3

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • C מנותק
                        CUBASE @יוסף המתכנת
                        נערך לאחרונה על ידי

                        @יוסף-המתכנת אבל מה עוזר לך עם ngrok?, זה הרי עובד רק כשהמחשב פתוח ואתה מפעיל את השרת!

                        י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • י מנותק
                          יוסף המתכנת @CUBASE
                          נערך לאחרונה על ידי

                          @CUBASE נכון! אלא למי שרוצה ליצור שרתים חיצוניים (הוא רצה מערכת שתחפש בשבילו מידע על רכבים) ואת האמת אף פעם לא ניסיתי ליצור שרת חיצוני כך שאני לא יכול לכתוב מדריך על משהו שלא עשיתי

                          C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • C מנותק
                            CUBASE @יוסף המתכנת
                            נערך לאחרונה על ידי

                            @יוסף-המתכנת אבל אין קטע במערכת טלפונית שעובדת רק כשהמחשב פתוח - אפשר כבר לבדוק במחשב..

                            י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • י מנותק
                              יוסף המתכנת @CUBASE
                              נערך לאחרונה על ידי

                              @CUBASE לי אישית זה עזר כי המחשב שלי פתוח כמעט כל הזמן

                              ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • ע מנותק
                                עונה תשובות @יוסף המתכנת
                                נערך לאחרונה על ידי

                                מי יכול והצליח לעזור לי

                                ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • ע עונה תשובות התייחס לנושא זה
                                • ע מנותק
                                  עונה תשובות @עונה תשובות
                                  נערך לאחרונה על ידי

                                  @עונה-תשובות @CUBASE היצלחת צריך עזרא

                                  תגובה 1 תגובה אחרונה תגובה ציטוט -1
                                  • ע עונה תשובות התייחס לנושא זה
                                  • ס מנותק
                                    סטאר
                                    נערך לאחרונה על ידי

                                    איך אני יודע מה הכתובת שרת שלי

                                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                    • א מנותק
                                      אנונידוס
                                      נערך לאחרונה על ידי

                                      לא הצלחתי להבין מה זה עושה?

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                      • כ מנותק
                                        כככ
                                        נערך לאחרונה על ידי

                                        3545a546-d8d4-40ba-b40f-7c634490e66a-image.png מה הבעיות

                                        ס תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                        • ס מנותק
                                          סטאר @כככ
                                          נערך לאחרונה על ידי

                                          @כככ כתב ביצירת בינה מלאכותית טלפונית מדריך:

                                          3545a546-d8d4-40ba-b40f-7c634490e66a-image.png מה הבעיות

                                          מה לעשות עם זה?????

                                          כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • כ מנותק
                                            כככ @סטאר
                                            נערך לאחרונה על ידי

                                            @סטאר בעיקרון זה אומר שבקוד שנכתב יש תו נסתר או תו שגוי הכי טוב לכתוב את הקוד עם ביסואל סטודיו

                                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                            • פוסט ראשון
                                              פוסט אחרון