summaryrefslogtreecommitdiff
path: root/moneyjsx/src/support-api.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'moneyjsx/src/support-api.tsx')
-rw-r--r--moneyjsx/src/support-api.tsx214
1 files changed, 214 insertions, 0 deletions
diff --git a/moneyjsx/src/support-api.tsx b/moneyjsx/src/support-api.tsx
new file mode 100644
index 0000000..abb4072
--- /dev/null
+++ b/moneyjsx/src/support-api.tsx
@@ -0,0 +1,214 @@
+import * as JSX from './jsx';
+
+import $ from 'jquery';
+
+import { Page, GroupBox } from './components';
+
+export default function Api() {
+ return <Page>
+ <GroupBox title="API" style="width: 85%">
+ <div id="support-container" style="text-align: left; width: 100%">
+
+ <h2>POST /update-settings</h2>
+ <p>Updates user settings based on the preferences provided.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre><code>{ `{
+ "token": "JWT token",
+ "prefs": {
+ "nickname": "string",
+ "prompt_data": { "system": "string" },
+ "site_prefs": { "model": "string" }
+ }
+}` }</code></pre>
+
+ <h3>Responses</h3>
+<pre>{ $( `<code>{
+ "status": "ok" | "error",
+ "msg": "settings updated" | "error message",
+ "userprefs": {
+ "uuid": "string", <span class="comment">/* the user uuid */</span>
+ "nickname": "string", <span class="comment">/* the user's set nickname */</span>
+ "prompt_data": { "system": "string" }, <span class="comment">/* the custom system prompt */</span>
+ "site_prefs": { "model": "string" }, <span class="comment">/* the user preferred model */</span>
+ "chat_files": { "files": [ { "id": "string", "name": "string" } ] }, <span class="comment">/* list of user's chat files */</span>
+ }
+}</code>` )[0] }</pre>
+ <ul>
+ <li><span class="status">200 OK</span>: Settings updated successfully</li>
+ <li><span class="status">400 Bad Request</span>: Invalid value or nickname out of allowed range</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ <li><span class="status">500 Internal Server Error</span>: General server error</li>
+ </ul>
+
+ <hr />
+
+ <h2>POST /settings</h2>
+ <p>Fetches user settings.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre><code>{ `{
+ "token": "JWT token"
+}` }</code></pre>
+
+ <h3>Responses</h3>
+<pre>{ $( `<code>{
+ "uuid": "string", <span class="comment">/* the user uuid */</span>
+ "nickname": "string", <span class="comment">/* the user's set nickname */</span>
+ "prompt_data": { "system": "string" }, <span class="comment">/* the custom system prompt */</span>
+ "site_prefs": { "model": "string" }, <span class="comment">/* the user preferred model */</span>
+ "chat_files": { "files": [ { "id": "string", "name": "string" } ] }, <span class="comment">/* list of user's chat files */</span>
+}</code>` )[0] }</pre>
+ <ul>
+ <li><span class="status">200 OK</span>: Returns user preferences</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ <li><span class="status">500 Internal Server Error</span>: No user data found</li>
+ </ul>
+
+ <hr />
+
+ <h2>POST /create-chat</h2>
+ <p>Creates a new chat file for the user.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre><code>{ `{
+ "token": "JWT token"
+}` }</code></pre>
+
+ <h3>Responses</h3>
+<pre>{ $( `<code>{
+ "status": "ok" | "nodata" | "error",
+ "msg": "chat created" | "error message",
+ "chatId": "string" <span class="comment">/* the uuid/filename of the newly created chat. */</span>
+}</code>` )[0] }</pre>
+ <ul>
+ <li><span class="status">200 OK</span>: Chat created with ID and topic name</li>
+ <li><span class="status">400 Bad Request</span>: Missing user data</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ <li><span class="status">500 Internal Server Error</span>: Error creating chat file or updating database</li>
+ </ul>
+
+ <hr />
+
+ <h2>POST /get-chat</h2>
+ <p>Fetches the contents of a specified chat file.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre>{ $( `<code>{
+ "token": "JWT token",
+ "chatId": "string" <span class="comment">/* chat file uuid */</span>
+}</code>` )[0] }</pre>
+
+ <h3>Responses</h3>~
+<pre><code>{ `{
+ "status": "ok" | "error",
+ "msg": "chat not found" | "error message",
+ "contents": [ { }, ... ]
+}` }</code></pre>
+ <ul>
+ <li><span class="status">200 OK</span>: Returns chat file contents</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ <li><span class="status">404 Not Found</span>: Chat does not exist</li>
+ <li><span class="status">500 Internal Server Error</span>: User data not found</li>
+ </ul>
+
+ <hr />
+
+ <h2>POST /models</h2>
+ <p>Lists available models for chat.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre><code>{ `{
+ "token": "JWT token"
+}` }</code></pre>
+
+ <h3>Responses</h3>
+ <ul>
+ <li><span class="status">200 OK</span>: Returns list of models with their attributes</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ </ul>
+
+ <hr />
+
+ <h2>POST /generate</h2>
+ <p>Generates text based on the input prompt. Can optionally be used for in-the-middle generation.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre>{ $( `<code>{
+ "token": "JWT token",
+ "prompt": "string", <span class="comment">/* the text before the generated text */</span>
+ "suffix": "string", <span class="comment">/* optional - the text after the generated text */</span>
+ "model": "string",
+ "options": { "seed": Number, "temperature": Number } <span class="comment">/* optional */</span>
+}</code>` )[0] }</pre>
+
+ <h3>Response</h3>
+ <p><strong>Body:</strong></p>
+<pre>{ $( `<code>{
+ "status": "ok" | "error",
+ "response": "string",
+ "finalMsg": "string" <span class="comment">/* optional - only at the end of chunked transmission */</span>
+}</code>` )[0] }</pre>
+
+ <ul>
+ <li><span class="status">200 OK</span>: Returns streamed chat response</li>
+ <li><span class="status">400 Bad Request</span>: Missing required parameters</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ <li><span class="status">429 Too Many Requests</span>: A request from this user is already being processed</li>
+ <li><span class="status">504 Gateway Timeout</span>: No chat instance available</li>
+ <li><span class="status">500 Internal Server Error</span>: Chat server error</li>
+ </ul>
+
+ <hr />
+
+ <h2>POST /chat</h2>
+ <p>Sends a message to the chat server and streams the response back to the user.</p>
+
+ <h3>Request</h3>
+ <p><strong>Body:</strong></p>
+<pre>{ $( `<code>{
+ "token": "JWT token",
+ "model": "string",
+ "messages": [ {
+ "role": "user" | "assistant" | "tool" | "system",
+ "content": "string",
+ timestamp: "string"
+ } ],
+ "system": "string", <span class="comment">/* optional */</span>
+ "options": { "seed": Number, "temperature": Number }, <span class="comment">/* optional */</span>
+ "chatfile": "string" <span class="comment">/* optional - chat file uuid */</span>
+}</code>` )[0] }</pre>
+
+ <h3>Responses</h3>
+ <p><strong>Message:</strong></p>
+<pre><code>{ `{
+ "status": "ok" | "error",
+ "msg": "string",
+ "done": false,
+ "tool": "string"
+}` }</code></pre>
+ <p><strong>End:</strong></p>
+<pre><code>{ `{
+ "status": "ok" | "error",
+ "msg": "string",
+ "fullMsg": "full message returned by the model",
+ "done": true | false
+}` }</code></pre>
+ <ul>
+ <li><span class="status">200 OK</span>: Returns streamed chat response</li>
+ <li><span class="status">400 Bad Request</span>: Missing required parameters</li>
+ <li><span class="status">401 Unauthorized</span>: Invalid or expired token</li>
+ <li><span class="status">429 Too Many Requests</span>: A request from this user is already being processed</li>
+ <li><span class="status">504 Gateway Timeout</span>: No chat instance available</li>
+ <li><span class="status">500 Internal Server Error</span>: Chat server error</li>
+ </ul>
+ </div>
+ </GroupBox>
+ </Page>
+}