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

Astraport

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

Roman*

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

soprano

Client
Регистрация
25.08.2011
Сообщения
924
Благодарностей
1 043
Баллы
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
Сообщения
5 034
Благодарностей
4 514
Баллы
113

todayer

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

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

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

soprano

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

todayer

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

buraks

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

soprano

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

Вложения

kagorec

Client
Регистрация
24.08.2013
Сообщения
1 060
Благодарностей
574
Баллы
113
Добрый вечер. А можно до 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
Сообщения
924
Благодарностей
1 043
Баллы
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
Сообщения
198
Благодарностей
194
Баллы
43
Хоть и уважаю этого автора за его креативность в принципе, но данный шаб на уровне 3 класса. Элементаршина полнейшая... не скачивал шаб, но читал описание, непонятно зачем там какая то библиотека если кубик post отлично все отправляет.

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

Nats1

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

Nord

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


104620
 

SERG454

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


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

Astraport

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

mdsdeal

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

Astraport

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

Nord

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

Nord

Client
Регистрация
22.03.2012
Сообщения
2 423
Благодарностей
1 485
Баллы
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 423
Благодарностей
1 485
Баллы
113
Сообщение не по теме, можете удалить - А теперь что, на форуме нет кнопки "редактировать сообщение"?

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

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

soprano

Client
Регистрация
25.08.2011
Сообщения
924
Благодарностей
1 043
Баллы
93
Регистрация
26.10.2020
Сообщения
52
Благодарностей
11
Баллы
8
Регистрация
26.10.2020
Сообщения
52
Благодарностей
11
Баллы
8

ramzes8

Client
Регистрация
27.05.2016
Сообщения
44
Благодарностей
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
Сообщения
924
Благодарностей
1 043
Баллы
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
Благодарностей
44
Баллы
28
серьезный шаб, я там челу просто так сделал в ответ на его вопрос как роли прикрутить к чат гпт)) Эх... надо было на конкурс подаваться :P
 

Besedi

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

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