4 место Чатбот на основе бесплатного API от OpenAI.com

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 942
Благодарностей
4 334
Баллы
113

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 650
Благодарностей
654
Баллы
113
Если вы не против, я оставлю, как есть.
А этот, когда разберусь, тоже выложу.
Отличное начало, благодарю. Было бы неплохо, чтоб запоминал контекст и побольше параметров для выбора.
 

soprano

Client
Регистрация
25.08.2011
Сообщения
796
Благодарностей
841
Баллы
93
Подскажите пожалуйста, какую функцию тут выполняет библиотека? Вроде все несколькими кубиками без библиотеки работает.
Вообще, ответ получается в формате json
{
"id": "cmpl-12345",
"object": "text_completion",
"created": 16788777777,
"model": "text-davinci-003",
"choices": [
{
"text": " Децентрализованные финансы (DeFi) объединяют цифровые активы, контракты по умолчанию и другие инструменты для создания децентрализованных финансовых приложений. Это позволяет людям получать доступ к финансовым сервисам без посредников и без необходимости предоставления личных данных. Децентрализованные финансы также позволяют участникам рынка безопасно и недорого переводить и хранить деньги, а также совершать сделки с использованием различных активов.",
"index": 0,
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 50,
"completion_tokens": 496,
"total_tokens": 546
}
}
и эта библиотека собственно и обрабатывает его.

А про какие несколько кубиков речь?
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 942
Благодарностей
4 334
Баллы
113

todayer

Client
Регистрация
07.08.2013
Сообщения
940
Благодарностей
391
Баллы
63
Вообще, ответ получается в формате json

и эта библиотека собственно и обрабатывает его.

А про какие несколько кубиков речь?
Post запрос и регулярка для обработки ответа.
 

soprano

Client
Регистрация
25.08.2011
Сообщения
796
Благодарностей
841
Баллы
93
  • Спасибо
Реакции: todayer

todayer

Client
Регистрация
07.08.2013
Сообщения
940
Благодарностей
391
Баллы
63

buraks

Client
Регистрация
16.07.2019
Сообщения
3
Благодарностей
0
Баллы
1
Добрый вечер. А можно до 7.4 по низить
 

soprano

Client
Регистрация
25.08.2011
Сообщения
796
Благодарностей
841
Баллы
93

Вложения

kagorec

Client
Регистрация
24.08.2013
Сообщения
921
Благодарностей
473
Баллы
63
Добрый вечер. А можно до 7.4 по низить
soprano, просто кодом если постить? Шаблон ведь на 1 кубике C#
C#:
        IZennoList List = project.Lists["List"];
        IZennoList Result = project.Lists["Result"];

        HttpClient client = new HttpClient();
    
        string openaiApiKey = project.Variables["openaiApiKey"].Value.ToString();
        string openaiEngine = "text-davinci-003";
        
        while(List.Count > 0){
        
        string question = List[0];   
        string apiUrl = "https://api.openai.com/v1/engines/" + openaiEngine + "/completions";
        string prompt = "user: " + question + "\nbot:";
        JObject requestBody = new JObject(
            new JProperty("prompt", prompt),
            new JProperty("max_tokens", 1024), //до 4000
            new JProperty("n", 1),
            new JProperty("stop", null),
            new JProperty("temperature", 0.5)
        );

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, apiUrl);
        request.Headers.Add("Authorization", "Bearer " + openaiApiKey);
        request.Content = new StringContent(requestBody.ToString(), System.Text.Encoding.UTF8, "application/json");
        List.RemoveAt(0);

        HttpResponseMessage response = client.SendAsync(request).Result;
        var responseString1 = response.Content.ReadAsStringAsync().Result;
        JObject responseObject1 = JObject.Parse(responseString1);

        var fin = responseObject1["choices"][0]["text"].ToString() + Environment.NewLine; //@"/r/n";
        project.SendInfoToLog(fin, true);

        Result.Add(fin);   
    }
 

soprano

Client
Регистрация
25.08.2011
Сообщения
796
Благодарностей
841
Баллы
93
soprano, просто кодом если постить? Шаблон ведь на 1 кубике C#
C#:
        IZennoList List = project.Lists["List"];
        IZennoList Result = project.Lists["Result"];

        HttpClient client = new HttpClient();
   
        string openaiApiKey = project.Variables["openaiApiKey"].Value.ToString();
        string openaiEngine = "text-davinci-003";
       
        while(List.Count > 0){
       
        string question = List[0];  
        string apiUrl = "https://api.openai.com/v1/engines/" + openaiEngine + "/completions";
        string prompt = "user: " + question + "\nbot:";
        JObject requestBody = new JObject(
            new JProperty("prompt", prompt),
            new JProperty("max_tokens", 1024), //до 4000
            new JProperty("n", 1),
            new JProperty("stop", null),
            new JProperty("temperature", 0.5)
        );

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, apiUrl);
        request.Headers.Add("Authorization", "Bearer " + openaiApiKey);
        request.Content = new StringContent(requestBody.ToString(), System.Text.Encoding.UTF8, "application/json");
        List.RemoveAt(0);

        HttpResponseMessage response = client.SendAsync(request).Result;
        var responseString1 = response.Content.ReadAsStringAsync().Result;
        JObject responseObject1 = JObject.Parse(responseString1);

        var fin = responseObject1["choices"][0]["text"].ToString() + Environment.NewLine; //@"/r/n";
        project.SendInfoToLog(fin, true);

        Result.Add(fin);  
    }
Если кодом, придется вручную прописывать библиотеки в общем коде. Можно и кодом.
 
  • Спасибо
Реакции: kagorec

Nats1

Client
Регистрация
15.04.2015
Сообщения
197
Благодарностей
194
Баллы
43
Хоть и уважаю этого автора за его креативность в принципе, но данный шаб на уровне 3 класса. Элементаршина полнейшая... не скачивал шаб, но читал описание, непонятно зачем там какая то библиотека если кубик post отлично все отправляет.

Сопрано без обид, но ты точно можешь лучше... А так конечно спасибо, кому то пригодится.
 
  • Спасибо
Реакции: kagorec и izubr

Nats1

Client
Регистрация
15.04.2015
Сообщения
197
Благодарностей
194
Баллы
43
https://open-assistant.io/ru вот такая реализация была бы интересна, на хабре есть свежая статья как поднимают локально нейронку, говорят что ок. И нет лимитов и цензуры. А chatgpt капризный (очень типо перегружен временами, платный, цензурируемый.)

Как то так https://arstechnica.com/information-technology/2023/03/you-can-now-run-a-gpt-3-level-ai-model-on-your-laptop-phone-and-raspberry-pi/

Хотя допускаю что когда готовилась статья не было того о чем я пишу. Так как патерны (весы) слили буквально на днях для нейронки.
 
Последнее редактирование:

Nats1

Client
Регистрация
15.04.2015
Сообщения
197
Благодарностей
194
Баллы
43
Пока нет вроде работы по АПИ. Вчера затестил GPT-4 через веб, впечатляет.
Абонентка 20 у.е в месяц и лимит 100 запросов в 4 часа, очень такое себе для "промышленной" автоматизации. Ну и api только по большому блату.
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 371
Благодарностей
1 427
Баллы
113
По ходу это 1в1 мой пирвый шаблон с api open ai) Только без бибилиотек)


104620
 

SERG454

Client
Регистрация
14.10.2021
Сообщения
144
Благодарностей
140
Баллы
43
По ходу это 1в1 мой пирвый шаблон с api open ai) Только без бибилиотек)


Посмотреть вложение 104620
Ну а у автора , рабочий пример на C# , те готовый рабочий код для вставки в свой код , так сказать местный стаковерфлоу)
Он догадался в конкурс выложить , а ты нет:D
Модераторы одобрили ,а голосование рассудит :bk:
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 942
Благодарностей
4 334
Баллы
113

mdsdeal

Client
Регистрация
25.02.2022
Сообщения
252
Благодарностей
62
Баллы
28

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 942
Благодарностей
4 334
Баллы
113

Nord

Client
Регистрация
22.03.2012
Сообщения
2 371
Благодарностей
1 427
Баллы
113
Ну а у автора , рабочий пример на C# , те готовый рабочий код для вставки в свой код , так сказать местный стаковерфлоу)
Он догадался в конкурс выложить , а ты нет:D
Модераторы одобрили ,а голосование рассудит :bk:
Не имею ничего против.
Наоборот - я написал только тут, а не в других темах, так как считаю тему очень интересной и шаблон автора актуальным, но с намеком, что можно было немного развить функционал, так как даже элементарный потенциал еще был
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 371
Благодарностей
1 427
Баллы
113
How much does GPT-4 cost?

We are excited to announce GPT-4 has a new pricing model, in which we have reduced the price of the prompt tokens.

For our models with 8k context lengths (e.g. gpt-4 and gpt-4-0314), the price is:
  • $0.03/1k prompt tokens
  • $0.06/1k sampled tokens

For our models with 32k context lengths (e.g. gpt-4-32k and gpt-4-32k-0314), the price is:
  • $0.06/1k prompt tokens
  • $0.12/1k sampled tokens
 
  • Спасибо
Реакции: mdsdeal

Nord

Client
Регистрация
22.03.2012
Сообщения
2 371
Благодарностей
1 427
Баллы
113
Сообщение не по теме, можете удалить - А теперь что, на форуме нет кнопки "редактировать сообщение"?

Хотел добавить скрин с оф сайта - а кнопки редактировать нет в сообщении выше

 
  • Спасибо
Реакции: mdsdeal
Регистрация
26.10.2020
Сообщения
51
Благодарностей
9
Баллы
8

soprano

Client
Регистрация
25.08.2011
Сообщения
796
Благодарностей
841
Баллы
93
Регистрация
26.10.2020
Сообщения
51
Благодарностей
9
Баллы
8
Регистрация
26.10.2020
Сообщения
51
Благодарностей
9
Баллы
8

ramzes8

Client
Регистрация
27.05.2016
Сообщения
43
Благодарностей
45
Баллы
18
soprano, просто кодом если постить? Шаблон ведь на 1 кубике C#
C#:
        IZennoList List = project.Lists["List"];
        IZennoList Result = project.Lists["Result"];

        HttpClient client = new HttpClient();
   
        string openaiApiKey = project.Variables["openaiApiKey"].Value.ToString();
        string openaiEngine = "text-davinci-003";
       
        while(List.Count > 0){
       
        string question = List[0];  
        string apiUrl = "https://api.openai.com/v1/engines/" + openaiEngine + "/completions";
        string prompt = "user: " + question + "\nbot:";
        JObject requestBody = new JObject(
            new JProperty("prompt", prompt),
            new JProperty("max_tokens", 1024), //до 4000
            new JProperty("n", 1),
            new JProperty("stop", null),
            new JProperty("temperature", 0.5)
        );

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, apiUrl);
        request.Headers.Add("Authorization", "Bearer " + openaiApiKey);
        request.Content = new StringContent(requestBody.ToString(), System.Text.Encoding.UTF8, "application/json");
        List.RemoveAt(0);

        HttpResponseMessage response = client.SendAsync(request).Result;
        var responseString1 = response.Content.ReadAsStringAsync().Result;
        JObject responseObject1 = JObject.Parse(responseString1);

        var fin = responseObject1["choices"][0]["text"].ToString() + Environment.NewLine; //@"/r/n";
        project.SendInfoToLog(fin, true);

        Result.Add(fin);  
    }
Подскажите какие using подключить, при запуске вашего кода вылетает ошибка на строке HttpResponseMessage response = client.SendAsync(request).Result;
 

soprano

Client
Регистрация
25.08.2011
Сообщения
796
Благодарностей
841
Баллы
93
Подскажите какие using подключить, при запуске вашего кода вылетает ошибка на строке HttpResponseMessage response = client.SendAsync(request).Result;
Вот всё, что у меня подключено
C#:
using System;
using System.Net;
using System.Net.Http;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
 
  • Спасибо
Реакции: ramzes8

Besedi

Client
Регистрация
04.03.2019
Сообщения
234
Благодарностей
40
Баллы
28
серьезный шаб, я там челу просто так сделал в ответ на его вопрос как роли прикрутить к чат гпт)) Эх... надо было на конкурс подаваться :P
 

Besedi

Client
Регистрация
04.03.2019
Сообщения
234
Благодарностей
40
Баллы
28

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)