Project

General

Profile

SendRequest() method » History » Version 11

Tomislav Pleše, 09/21/2025 11:59 AM

1 1 Tomislav Pleše
# SendRequest() method
2 2 Tomislav Pleše
3 4 Tomislav Pleše
Context is created from message with following roles: 
4
* system (content: instructions to AI model), 
5
* assistant (content: AI model responses), 
6
* user (content: user prompts)
7 1 Tomislav Pleše
8 5 Tomislav Pleše
Context is created as a messageList where:
9
* first element is the assistant role/content if it exists
10
* following elements are an ascending list of user prompts and assistant responses in ascending order
11
* last element is the newest user prompt
12
13 10 Tomislav Pleše
Sub-prompt 
14
15
Sub-prompt is a prompt that is created from the contents of the Response of the currently selected Point (node - prompt + response). Flow:
16
1. FE - User selects a portion of the current Point's response
17
2. FE - And from this selected text, the new Prompt is started (user can add more text to the selected text)
18
3. FE - User then sends this new Prompt to the AI model 
19
4. FE - From this new Prompt is created a new Point
20
5. FE - The current Point (from which the selected text comes from) now becomes a Shard Point (Shard is added to that Point). This Shard has an Anchor (containing among other: the start and end positions of the selected text)
21
6. FE - The new Point is added to the shardPointChildren list inside the Shard
22
7. FE - On the phone's screen, the node's Response message part (in the tree view) is split into two (sharding): first part (shard) is the text before the end position of the selected text (in the Anchor), and the second part (shard) is the text after that and till the end of the Response.
23
8. FE - The new node (with the new prompt) is placed indented under the first part (first shard) in the tree view 
24 11 Tomislav Pleše
9. FE - Create Context as the messageList. This is how the context for the Shard is created:
25
26
27
28 10 Tomislav Pleše
29
30
creates a new regular Point
31
5. selectedRegular Point 
32 9 Tomislav Pleše
1st Sharding - Regular Point becomes Shard Point (ThreadMap = not empty, ShardList = empty) - Shard is created and added to ShardList, new Point is added to ShardPointChildren
33 8 Tomislav Pleše
* previous Response creates a new Point that is inserted in between the response of a current Regular Point. The splitting of the current Point is at the point of  that by this becomes a Shard
34 4 Tomislav Pleše
35 8 Tomislav Pleše
36 4 Tomislav Pleše
Cases for the flow of sending requests to AI model:
37
38 1 Tomislav Pleše
1. Root Point - First Prompt
39 6 Tomislav Pleše
    1. FE - Create new Point
40
    2. FE - Show new Point on Screen - only the Prompt
41
    3. FE - Create Context as the messageList.
42
    4. FE - Send new Point and the messageList to BE
43
    5. BE - Save new Point to DB
44
    6. BE - Send messageList to OpenAI. The JSON should comprise of: model, messages, max_tokens
45
    7. BE - Receive the Response from OpenAI
46
    8. BE - Save Response to DB (into the previously saved new Point document)
47
    9. BE - Send the new Point (with updated Response and other elements like Metadata) to FE
48
    10. FE - Show updated new Point on Screen - node consisting of both Prompt message content and Response message content 
49 1 Tomislav Pleše
50 2 Tomislav Pleše
2. Existing Point - Second prompt
51 6 Tomislav Pleše
    1. FE - Create new Point
52
    2. FE - Show new Point on Screen - the Prompt, under the previous Point
53
    3. FE - Create Context as the messageList.
54
    4. FE - Send new Point and the messageList to BE
55
    5. BE - Save new Point to DB
56
    6. BE - Send messageList to OpenAI. The JSON should comprise of: model, messages, max_tokens
57
    7. BE - Receive the Response from OpenAI
58
    8. BE - Save Response to DB (into the previously saved new Point document)
59
    9. BE - Send the new Point (with updated Response and other elements like Metadata) to FE
60 7 Tomislav Pleše
    10. FE - Show updated new Point on Screen - node consisting of both Prompt message content and Response message content 
61 1 Tomislav Pleše
62 8 Tomislav Pleše
3. New shard -   
63 1 Tomislav Pleše
    1. FE - Create new Point
64 8 Tomislav Pleše
    2. FE - Create a Shard in the current Prompt 
65
3. FE - 
66
    3. FE - Show new Point on Screen - the Prompt, under the previous Point
67 7 Tomislav Pleše
    3. FE - Create Context as the messageList.
68
    4. FE - Send new Point and the messageList to BE
69
    5. BE - Save new Point to DB
70
    6. BE - Send messageList to OpenAI. The JSON should comprise of: model, messages, max_tokens
71
    7. BE - Receive the Response from OpenAI
72
    8. BE - Save Response to DB (into the previously saved new Point document)
73
    9. BE - Send the new Point (with updated Response and other elements like Metadata) to FE
74
    10. FE - Show updated new Point on Screen - node consisting of both Prompt message content and Response message content 
75 6 Tomislav Pleše
76 7 Tomislav Pleše
4. Existing Shard - sub-prompt under a Point that has already been a Shard