@@ -6,8 +6,11 @@ declare @retval int;
66declare @samples nvarchar (max )
77declare @error nvarchar (max )
88
9- declare @log table (
10- id int identity primary key nonclustered ,
9+ declare @rid int = next value for request_id;
10+
11+ declare @log table (
12+ [id] int identity primary key nonclustered ,
13+ [request_id] int not null ,
1114 [event_time] datetime2 (7 ) default (CURRENT_TIMESTAMP ),
1215 [message] nvarchar (1000 ),
1316 [output] nvarchar (max )
@@ -21,30 +24,30 @@ begin try
2124 /*
2225 Get the embedding for the requested text
2326 */
24- if (@debug = 1 ) insert into @log ([message]) values (' Getting embeddings for query text...' )
27+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Getting embeddings for query text...' )
2528
2629 declare @qv vector(1536 )
27- exec @retval = web .get_embedding @text, @qv output , @error output with result sets none
30+ exec @retval = web .get_embedding @rid, @ text, @qv output , @error output with result sets none
2831 if (@retval != 0 ) begin
29- if (@debug = 1 ) insert into @log ([message], [output]) values (' Error while getting embedding.' , @error)
32+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Error while getting embedding.' , @error)
3033 if (@debug = 1 ) select * from @log;
3134 select @error as error;
3235 return ;
3336 end
3437
35- if (@debug = 1 ) insert into @log ([message]) values (' Done.' )
38+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Done.' )
3639
3740
3841 /*
3942 Check in the semantic cache to see if a similar question has been already answered
4043 */
4144 if (@nocache != 1 ) begin
42- if (@debug = 1 ) insert into @log ([message]) values (' Searching semantic cache...' )
45+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Searching semantic cache...' )
4346
4447 exec web .query_semantic_cache @qv, @cached_response output with result sets none
4548 if (@cached_response is not null ) begin
4649 set @response = @cached_response
47- if (@debug = 1 ) insert into @log ([message], [output]) values (' Found result in cache.' , @response)
50+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Found result in cache.' , @response)
4851 end
4952 end
5053
@@ -54,60 +57,60 @@ begin try
5457 /*
5558 Orchestrate answer
5659 */
57- if (@debug = 1 ) insert into @log ([message], [output]) values (' Orchestrating resolution strategies...' , @response)
60+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Orchestrating resolution strategies...' , @response)
5861
5962 declare @rt varchar (50 ), @rq nvarchar (max )
60- exec @retval = [web].[orchestrate_request] @text, @rt output , @rq output , @error output with result sets none
63+ exec @retval = [web].[orchestrate_request] @rid, @ text, @rt output , @rq output , @error output with result sets none
6164 if (@retval != 0 ) begin
62- if (@debug = 1 ) insert into @log ([message], [output]) values (' Error during orchestration evaluation...' , @error)
65+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Error during orchestration evaluation...' , @error)
6366 if (@debug = 1 ) select * from @log;
6467 select @error as error;
6568 return ;
6669 end
6770
68- if (@debug = 1 ) insert into @log ([message], [output]) values (' Strategy determined.' , @rt)
69- if (@debug = 1 ) insert into @log ([message], [output]) values (' Query defined.' , @rq)
71+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Strategy determined.' , @rt)
72+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Query defined.' , @rq)
7073
71- if (@debug = 1 ) insert into @log ([message]) values (' Orchestration planning complete, moving to execution.' )
74+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Orchestration planning complete, moving to execution.' )
7275
7376 /*
7477 Find the samples using generated T-SQL
7578 */
7679 if (@rt = ' SQL' ) begin
77- if (@debug = 1 ) insert into @log ([message]) values (' Starting executing generated SQL query...' )
80+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Starting executing generated SQL query...' )
7881
7982 -- Simple sanitization
8083 declare @trq nvarchar (max ) = trim (replace (replace (@rq, char (13 ), ' ' ), char (10 ), ' ' ));
8184 if (@trq like ' %INSERT %' or @trq like ' %UPDATE %' or @trq like ' %DELETE %' or @trq like ' %DROP %' or @trq like ' %ALTER %' or @trq like ' %CREATE %' ) begin
82- if (@debug = 1 ) insert into @log ([message]) values (' Unauthorized SQL command requested' );
85+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Unauthorized SQL command requested' );
8386 if (@debug = 1 ) select * from @log;
8487 select ' NL2SQL' as [error], - 1 as [error_code], ' Unauthorized SQL command requested' as [response]
8588 return - 1
8689 end
87- if (@debug = 1 ) insert into @log ([message], [output]) values (' Query sanitized.' , @trq)
90+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Query sanitized.' , @trq)
8891
8992 -- Execute generate query
9093 create table #ts (id int , [name] nvarchar (100 ), [description] nvarchar (max ), notes nvarchar (max ), details json , created_on datetime2 (0 ), updated_on datetime2 (0 ), distance_score float );
9194 insert into #ts exec sp_executesql @rq
9295 set @samples = cast ((select * from #ts for json auto ) as nvarchar (max ))
93- if (@debug = 1 ) insert into @log ([message], [output]) values (' Query executed.' , @samples)
96+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Query executed.' , @samples)
9497
9598 /* If not results coming from SQL execution, try SEMANTIC anyway */
9699 if (@samples is null ) begin
97100 set @rt = ' SEMANTIC'
98- if (@debug = 1 ) insert into @log ([message], [output]) values (' Empty resultset returned, switching strategy.' , @rt)
101+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Empty resultset returned, switching strategy.' , @rt)
99102 end
100103 end
101104
102105 /*
103106 Find the samples using hybrid search
104107 */
105108 if (@rt like ' %SEMANTIC%' ) begin
106- if (@debug = 1 ) insert into @log ([message]) values (' Running hybrid search...' )
109+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Running hybrid search...' )
107110 set @k = coalesce (@k, 50 )
108111
109112 -- Semantic Search
110- if (@debug = 1 ) insert into @log ([message]) values (' Running semantic search...' )
113+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Running semantic search...' )
111114 drop table if exists #ss;
112115 select top (@k)
113116 s .id ,
@@ -131,7 +134,7 @@ begin try
131134 -- select * from #ss;
132135
133136 -- Fulltext Search
134- if (@debug = 1 ) insert into @log ([message]) values (' Running fulltext search...' )
137+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Running fulltext search...' )
135138 drop table if exists #ks;
136139 select top (@k)
137140 id,
@@ -147,7 +150,7 @@ begin try
147150 -- select * from #ks;
148151
149152 -- RRF
150- if (@debug = 1 ) insert into @log ([message]) values (' Executing RRF...' )
153+ if (@debug = 1 ) insert into @log ([request_id], [ message]) values (@rid, ' Executing RRF...' )
151154 drop table if exists #s;
152155 with semantic_search as
153156 (
@@ -203,17 +206,17 @@ begin try
203206 order by similiarity_score desc for json path
204207 )
205208
206- if (@debug = 1 ) insert into @log ([message], [output]) values (' Completed hybrid search.' , @samples)
209+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Completed hybrid search.' , @samples)
207210 end
208211
209212 /*
210213 Send found samples to LLM for generating the final answer
211214 */
212- if (@debug = 1 ) insert into @log ([message], [output]) values (' Generating answer...' , null )
215+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Generating answer...' , null )
213216 if (@samples is not null ) begin
214- exec @retval = [web].[generate_answer] @text, @samples, @response output , @error output with result sets none ;
217+ exec @retval = [web].[generate_answer] @rid, @ text, @samples, @response output , @error output with result sets none ;
215218 if (@retval != 0 ) begin
216- if (@debug = 1 ) insert into @log ([message], [output]) values (' Error while generating answer.' , @error)
219+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Error while generating answer.' , @error)
217220 if (@debug = 1 ) select * from @log;
218221 select @error as error;
219222 return ;
@@ -223,7 +226,7 @@ begin try
223226 set @response = ' {}'
224227 end
225228
226- if (@debug = 1 ) insert into @log ([message], [output]) values (' Answer generated...' , @response)
229+ if (@debug = 1 ) insert into @log ([request_id], [ message], [output]) values (@rid, ' Answer generated...' , @response)
227230
228231 /*
229232 Cache results
0 commit comments