Использование таблицы для выгрузки в ИИ и для загрузки данных из ИИ

В этом демо разбираем возможность таблиц загружать данные из ИИ (в Excel формате) и выгружать данные в ИИ (в файле CSV). 

Пусть в базе данных есть некая таблица tst_data с полями id, title, text, value. 

В таблицу можно загрузить Excel файл для добавления или для обновления данных в строках таблицы (т.е. данные из ИИ, полученные где-то в чате в виде таблицы и сохраненные в Excel формате - XLSX).

1. Генерируем данные в ИИ (я делал это в chat.DeepSeek.com) в виде таблицы и загружаем в таблицу через файл XLSX. Кнопка Добавление через файл.

2. Через кнопку CSV справа выгружаем данные из таблицы в CSV (сохраняем в файл .txt или .csv) и обрабатываем массово эти данные через ИИ, например с таким промптом:

На входе у тебя таблица с данными (города - во вложении). На выходе выдай таблицу с колонками id, title,text, value (чтобы я мог таблицу скопировать), но для названия напиши его старое наименование в скобках, если такое было. А описание пусть будет на татарском языке (третья колонка).

3. Загружаем полученную таблицу в Excel и подгружаем файл XLSX через кнопку Обновление через файл

ВЫВОДЫ

Так можно обрабатывать массово свои данные в учетной системе через ИИ: 

  • выгрузить нужные данные
  • обработать в ИИ 
  • загрузить обратно измененные данные (или массово добавить новые данные). 

Где это может пригодиться: 

  • улучшить данные в каталоге 
  • оптимизировать контент (ошибки, стилистика, перевод)
  • провести анализ данных из вашей учетной системы 
  • массовая генерация контента 
  • поиск аномалий в данных (например, нечеткие дубли). 

Код реализации

GetItems таблицы (настройка импорта): 

CREATE PROCEDURE [dbo].[crud_watch_excelio_getItems]
	@filters CRUDFilterParameter READONLY,  
	@sort sql_variant,
	@direction nvarchar(8),
	@page int,
	@pageSize int,
	@username nvarchar(32)
AS
BEGIN
	 IF (OBJECT_ID('tempdb..#ids') IS NOT NULL) DROP TABLE #ids
	CREATE TABLE #ids ( id int primary key)
     declare @mode nvarchar(max) = isnull((select value from @filters where [key]='exportMode'), '')
     if(@mode<>'') begin 
          set @pageSize = 2000
          set @page = 1
     end 
	-- filters...    
	declare @filterName nvarchar(128) = (select top 1 Value from @filters where [Key] = 'name')
	declare @itemID int = (select top 1 try_cast(Value as int) from @filters where [Key] = 'itemID')
	
	insert into #ids
	select id 
	from tst_data
	
	
	-- SELECT 1
	select
		isnull([id], '') [id],
		isnull([title], '') [title],
		isnull([text], '') [text],
		isnull([value], '') [value]
	from tst_data 
	where id in (select id from #ids)
	order by  id desc
	OFFSET @PageSize * (@Page - 1) ROWS
	FETCH NEXT @PageSize ROWS ONLY;
	
	-- SELECT 2
	select count(*) from #ids	
	
    declare @newDesc nvarchar(max) = 'Напишите в ИИ(ChatGPT, DeepSeek, QWEN) промпт: <b>Сделай таблицу из 100 строк (города РФ) с 4 колонками: порядковый номер,название города,краткое описание,количество жителей в нем (важно - целое число).</b>'+
    '<br><br>Далее сохраните таблицу в Excel (в формате XLSX) и загрузите сюда'
    -- Загрузите Excel с 4 колонками: номер,title,text,value. Будут добавлены записи в таблицу там где номер>0
	-- SELECT 3 Settings
    select '[
		{"enable": true,  
         "code": "newTstData",
    	"desc": "'+@newDesc+'", 
		"resourceManager": "tstData" , 
        "btnText": "Добавление через файл", 
		"icon": "fa fa-plus", 
        "dialogTitle": "Добавление через файл ", "dialogBtnText": "Выполнить добавление"  },
        {"enable": true,  
         "code": "updateTstData",
    	"desc": "Загрузите Excel с колонками:id, title, text, value. Данные будут обновлены по ID (если нет такого ID, то отброшены)", 
		"resourceManager": "tstData" , 
        "btnText": "Обновление через файл", 
		"icon": "fa fa-bars", 
        "dialogTitle": "Массовая обновление строк через файл ", "dialogBtnText": "Выполнить обновление"  }
]' importOptions,
	1 EnableCSVExport, 
    '300px' height, 
    'h3' headerTag
	-- SELECT 4 Footer data or kanban/gantt data
	-- SELECT 5 Predefined filters    
    drop table #ids
END

Для режима выгрузки ставим большой PageSize и page=1

UpdateItemField таблицы (обработка импорта): 

CREATE PROCEDURE [dbo].[crud_watch_excelio_updateField]
	@itemID int,
	@field nvarchar(64),
	@value nvarchar(max),
	@username nvarchar(64)
AS
BEGIN
if(@field = 'import-newTstData') begin
	-- itemID - это itemID таблицы
    -- value это rows разделенный delimiter 
    declare @row nvarchar(max) = @value
    declare @ord int=  try_cast(isnull((select value from dbo.split(@row, ';') where [num] = 1), '') as int)
    declare @title nvarchar(max) = isnull((select value from dbo.split(@row, ';') where [num] = 2), '')
    declare @text nvarchar(max) = isnull((select value from dbo.split(@row, ';') where [num] = 3), '')
    declare @value1 int = try_cast(isnull((select value from dbo.split(@row, ';') where [num] = 4), '')as int)
    if(@ord>0)begin    	
    	insert into tst_data (title, text, value)
		select @title, @text, @value1 
        -- SELECT 1
        select 1 Result, 'OK' Msg
    	return
    end 
    select 0 Result, 'Wrong ORD' Msg
    return
end else if(@field = 'import-updateTstData') begin
	-- itemID - это itemID таблицы
    -- value это rows разделенный delimiter 
    declare @row2 nvarchar(max) = @value
    declare @id2 int=  try_cast(isnull((select value from dbo.split(@row2, ';') where [num] = 1), '') as int)
    declare @title2 nvarchar(max) = isnull((select value from dbo.split(@row2, ';') where [num] = 2), '')
    declare @text2 nvarchar(max) = isnull((select value from dbo.split(@row2, ';') where [num] = 3), '')
    declare @value2 int =try_cast( isnull((select value from dbo.split(@row2, ';') where [num] = 4), '') as int)
    if(@id2>0 and exists(select id from tst_data where id = @id2))begin    	
    	update tst_data         
        set title = @title2, text = @text2, value = @value2
        where id = @id2 
        -- SELECT 1
        select 1 Result, 'OK' Msg
    	return
    end  else begin 
    	select 0 Result, 'Not exist ID=' +cast(@id2 as nvarchar)  Msg
        return
    end    
end else begin 
		-- SELECT 1
		select 'Invalid field code!' Msg, 0 Result
		return 
end  

END

Насколько полезна эта возможность?

Последние обновления

Форма генерации счета

Файлы и документы 10.01.2025

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Сайт использует Cookie. Правила конфиденциальности OK