• Как интегрировать ChatGPT?

    @janvarev
    Предприниматель, Senior Python dev
    В первом приближении можно сделать так:
    Послать чатгпт запрос в духе:
    "Вот контекст:
    ...данные о сайте...

    Основываясь на контексте, ответь на следующий вопрос пользователя: ..." и вывести ответ.

    Для такой штуки желателен большой контекст модели, которая будет обрабатывать сообщение. Если ЧатГПТ не хватает, можно использовать Antrophic Claude 1 - там контекст до 100 000 символов.

    Чтобы попробовать, как разные сети будут работать на данном запросе, что лучше подойдет, можно подключиться вот к этому проекту: https://vsegpt.ru/ - там куча нейросетей, и все через единый интерфейс OpenAI API, пример обращения к которому есть выше.
    Ответ написан
    Комментировать
  • Как интегрировать ChatGPT?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    https://medium.com/aimonks/create-your-chat-gpt-pl...

    гугл
    how to learn chatgpе on own knowledgebase
    Chat GPT with custom knowledge base

    а там, может и другие LLM подойдут
    Ответ написан
    Комментировать
  • Как интегрировать ChatGPT?

    @zkrvndm
    Софт для автоматизации
    Постейший запрос к ChatGPT выглядит так:
    $.ajax({
    	'url': 'https://api.openai.com/v1/chat/completions',
    	'type': 'POST',
    	'contentType': 'application/json; charset=UTF-8',
    	'headers': {
    		'Authorization': 'Bearer тут_ключ_доступа',
    		'OpenAI-Organization': 'тут_идентификатор_организации'
    	},
    	'data': JSON.stringify({
    		'model': 'gpt-3.5-turbo',
    		'messages': [
    			{
    				'role': 'user',
    				'content': 'Привет. Сколько лет Тому Крузу?'
    			}
    		],
    		'temperature': 0.3
    	}),
    	'success': function(response) {
    		console.log('Ответ ChatGPT:', response);
    	},
    	'error': function(err) {
    		console.error('Ошибка:', err);
    	}
    });

    Тут нет обучения, сохранения истории переписки и чтения ответа по мере поступления, но работать будет, см. ниже:

    65394817e3537813937511.png
    Если же хочешь пример с обучением, с сохранением переписки и постепенным чтением ответа по мере поступления с использованием ReadableStrream... это все тебе надо пилить самому, ну или заказывай у кого-нибудь платно.

    Да, я делаю интеграцию, но заказывать не обязательно у меня, есть целый сайт исполнителей.

    P. S. Примеры запросов и песочница доступны в официальной документации:
    https://platform.openai.com/docs/api-reference/int...
    Все полезные материалы там!
    Ответ написан
    Комментировать
  • Не меняется IP адрес даже при включении VPN. В чём проблема?

    @Drno
    При подключении VPN в настройках, поставьте галочку - шлюз в удаленной сети. Тогда весь траффик пойдет через vpn
    Ответ написан
    1 комментарий
  • Как остановить один интервал и начать другой?

    modelair
    @modelair
    unsocial
    const createTimerAnimator = () => {
      let intervalId
      return (time) => {
        if (intervalId) clearInterval(intervalId)
        const visibleResult = () => {
          const formatter = Intl.NumberFormat(undefined, {
            minimumIntegerDigits: 2
          })
          const hours = formatter.format(Math.floor(time / 60 / 60))
          const minutes = formatter.format(Math.floor(time / 60) - (hours * 60))
          const seconds = formatter.format(time % 60)
          timerEl.textContent = `${hours} : ${minutes} : ${seconds}`
        }
        visibleResult()
    
        intervalId = setInterval(() => {
          if (time > 0) {
            visibleResult(time--)
          } else {
            clearInterval(intervalId)
          }
        }, 1000)
    
      }
    }
    Ответ написан
    1 комментарий
  • Можно ли починить hover?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Сделайте обертку для элемента, который хотите анимировать при появлении и навешивайте эффекты появления на обертку, а ховеры уже на конкретный элемент, чтобы не переопределялись свойства ваши и библиотеки
    Ответ написан
    Комментировать
  • Что делать если обрезается картинка?

    @Esal
    нет ли у<div class="image__block image__block_bottom">стиля overflow:hidden; ?

    еще как вариант - попробуйте не оборачивать картинку дивом, пусть она будет спозиционирована сразу в родительском элементе <div class="first">

    а вот <div class="first">пропишите отступ padding-right в ширину картинки + 10-15px для красивого отступа от блока с текстом
    Ответ написан
    2 комментария
  • В axios+react, нет отрисовки вовремя, что делать?

    Maxsior
    @Maxsior
    loading...
    По примеру кажется, что не хватает теории по рендерингу, хукам и стейт-менеджменту - почитайте теорию с примерами.

    Вам нужно tasks менять через Redux, а именно через dispatch(). Если вы просто мутируется массив, это не изменит стейт, а значит не вызовет перерендер.
    Ответ написан
    Комментировать
  • Наполнение html через js, как в данном случае правильно взять ключи name и link из массива, так что бы каждое значение было присвоено одной карточки?

    XanXanXan
    @XanXanXan
    function renderItem(cardData) {
        const newCard = cardTemplate.cloneNode(true);
        const cardTitle = newCard.querySelector('.card__title');
        const cardImage = newCard.querySelector('.card__image');
    
        cardImage.src = cardData.link;
        cardTitle.textContent = cardData.name;
     
        container.append(newCard);
     }
    renderItem(); //← поэтому семь
    render();
    Ответ написан
    1 комментарий
  • Ошибка при выборе всех элементов querySelectorAll. Как найти решение?

    @ForSureN1
    frontend dev
    Здесь вы получаете коллекцию элементов, а не 1
    let like = document.querySelectorAll('.card__button-like')

    ,отсюда и ошибка на этом моменте
    like.addEventListener ('click', likeActive);
    Вы пытаетесь повешать обработчик на массив элементов, а не сами элементы
    поэтому перед этим нужно сделать цикл, внутри которого вы будете вешать обработчик на элементы
    like.forEach( item => { item.addEventListener('click', likeActive ) } )
    Ответ написан
    3 комментария
  • Popup menu не закрывается. Как лучше поступить?

    @todaystudio
    Можно добавить overlay, на который повесить обработчик события.
    Добавляем overlay:
    <div class="overlay">
    <div class="menu">
    //code...
    </div>
    </div>


    И добавляем скрипт на закрытие:
    function addMenu () {
    menu.style.display = 'block'
    overlay.style.display = 'block'
    overlay.addEventListener('click', closeMenu)
    }
    function closeMenu(e) {
    if (e.target.classList.contains('overlay')) {
    menu.style.display = 'none'
    overlay.style.display = 'none'
    overlay.removeEventListener('click')
    }
    }


    То есть, мы вешаем слушатель клика по overlay и проверяем кликнули ли по самому overlay или по попапу. Если по overlay, то закрываем overlay и попап.

    Ну и, конечно, лучше оперировать классами в этом случае, а не стилями. Классами проще, и проще анимировать все это дело.
    Ответ написан
    1 комментарий