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

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

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

      שלב א'
      הרצת הקוד הבא בשלוחה הרצויה:

      type=api
      api_link=פה תכניס את הכתובת של השרת שלך
      api_url_post=yes
      api_000=RECORD_PATH,no,record,/9/9,user_query_temp,no,yes,no
      api_end_goto=/
      api_answer_OK=read=t
      api_answer_ERROR_LINK=../error_handler
      
      

      שלב ב'
      להוציא api מהאתר של OpenAI (https://platform.openai.com/)
      שלב ג'
      התקנת המתמלל של גוגל- "SpeechRecognition"
      התקנת המתמלל
      לקיש על מקש הווינדואס ביחד עם האות R באנגלית ולכתוב CMD (זה פותח את טרמינל)
      ולהריץ: pip install flask openai SpeechRecognition pydub
      שלב ד'
      יצירת סקריפט ב nodejs שיצור שרת שיעשה את הדברים הבאים:(אני יעלה בהמשך השיחה)
      1- יקבל מהמערכת שלך הקלטה עם הדיבור של המשתמש
      2 ישלח את זה למתמלל שהתקנו
      *ישלח את התמלול ל- GPT דרך ה- API שהוצאנו בשלב ב'
      3 יקבל את התמלול בחזרה וישלח אותו למערכת
      ואז המקריא של "ימות המשיח יקריא את הטקסט למשתמש
      שלב ה'
      צריך להתקין את "נגרוק"
      התקנת נגרוק
      א' הורדת נגרוק מהאתר הרישמי: https://ngrok.com/download/
      הפעלת נגרוק
      אחרי שמריצים את הסקריפט nodejs נקבל תגובה בחזרה מטרמינל עם כתובת שרת אך זה שרת פנימי שהיא אפשר להשתמש בו עבור ימות המשיח ולכן צריך להפעיל את "נגרוק"
      אחרי שמפעילים את הסקריפט לא לסגור את חלון הטרמינל

      פותחים חלון טרמינל חדש ריק ומריצים בו את הקוד הבא: ngrok http 5000

      ולאחר מכן נקבל תגובה של נגרוק כמו טבלא כזו באחת השורות יהיה כתוב את כתובת השרת
      משהו שנראה בערך כמו זה:
      https://a1b2c3d4.ngrok.io -> forwards to http://localhost:3000

      (זה לא כתובת אמיתית מה שכתבתי פה)
      צריך להעתיק את הכתובת שלפני ה"חץ ולהכניס לימות המיח במקום הנכון בקוד של ה-ext.ini"

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

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

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

          api_link=פה תכניס את הכתובת של השרת שלך

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

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

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

              יצירת השרת ע"י 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
              ואז להעתיק את כתובת השרת (כתבנו איפה זה בתחילת המדריך בשלב ה' או ד') ולהמשיך משאר המדריך הראשון

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

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

                שורת המיקום

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

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

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

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

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

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

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

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

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

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

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

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

                          פה אני אוחז

                          י תגובה 1 תגובה אחרונה תגובה ציטוט 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
                                      • פוסט ראשון
                                        פוסט אחרון