<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/atria/technical-components/atria-model-gateway/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/atria/technical-components/atria-model-gateway/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/atria-model-gateway/components/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/atria-model-gateway/components/</guid>
      <description>
        
        
        &lt;h1 id=&#34;atria-model-gateway-architecture-and-components&#34;&gt;ATRIA Model Gateway architecture and components&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Development architecture and technical components of the &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;technical-foundations&#34;&gt;Technical foundations&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt; is responsible for managing the communication with different AI models. This component receives a request from &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt;, together with other input data, and makes a call the corresponding AI models.&lt;/p&gt;
&lt;p&gt;If the selected AI model is RAG, then &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt; calls the &lt;a href=&#34;../../../../docs/atria/technical-components/atria-rag-server/&#34;&gt;&lt;em&gt;&lt;strong&gt;atria-rag-server&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, which is in charge of executing the RAG chain and making the corresponding calls to the LLM models and databases.&lt;/p&gt;
&lt;h2 id=&#34;functional-components&#34;&gt;Functional components&lt;/h2&gt;
&lt;p&gt;The functional components of &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt; are described in the document &lt;a href=&#34;../../../../docs/atria/capabilities/llm-experiences-builder/#functional-components&#34;&gt;LLM/LMM Experiences Builder&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;architecture-overview&#34;&gt;Architecture overview&lt;/h2&gt;
&lt;p&gt;The following diagram schematically shows the main technical components integrated into &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../../../images/atria/atria-technical-components/atria-model-gateway-arch.png&#34; alt=&#34;atria-model-gateway-arch&#34;&gt;&lt;/p&gt;
&lt;p&gt;A brief description of these components is included below:&lt;/p&gt;
&lt;h3 id=&#34;access-module&#34;&gt;Access module&lt;/h3&gt;
&lt;p&gt;Module for the management of different profiles to access &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id=&#34;context-module&#34;&gt;Context module&lt;/h3&gt;
&lt;p&gt;Module in charge of the storage of a conversation history in a cache (currently, Redis is used) over a period of time, grouped by session ID. These conversations are taken into account when calling the generative LLM models.&lt;/p&gt;
&lt;h3 id=&#34;model-manager&#34;&gt;Model manager&lt;/h3&gt;
&lt;p&gt;Module that includes the available &lt;a href=&#34;#models&#34;&gt;models&lt;/a&gt; and &lt;a href=&#34;#presets&#34;&gt;presets&lt;/a&gt;. It is in charge of receiving the info from &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; and calling the corresponding model.&lt;/p&gt;
&lt;h4 id=&#34;models&#34;&gt;Models&lt;/h4&gt;
&lt;p&gt;Available AI models integrated into the &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;h4 id=&#34;presets&#34;&gt;Presets&lt;/h4&gt;
&lt;p&gt;Presets are configurable entities to define the specific model to work with and certain parameters associated to it: model Id, name, description, model parameters, etc.&lt;/p&gt;
&lt;p&gt;Constructors can use the default presets or build new ones: Go to document &lt;a href=&#34;../../../../docs/atria/technical-guidelines/configuration/&#34;&gt;ATRIA configuration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When configuring an &lt;a href=&#34;../../../../docs/atria/technical-components/application&#34;&gt;application&lt;/a&gt;, all the presets that can be used for this application must be previously defined.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/atria-model-gateway/operational-overview/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/atria-model-gateway/operational-overview/</guid>
      <description>
        
        
        &lt;h1 id=&#34;atria-model-gateway-operational-overview&#34;&gt;ATRIA Model Gateway operational overview&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Overview of the &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt; operation&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;operational-workflow&#34;&gt;Operational workflow&lt;/h2&gt;
&lt;p&gt;The operational flow between an application (for the communication with &lt;a href=&#34;../../../../docs/atria/technical-components/aura-gateway-api/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-gateway-apì&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;), &lt;a href=&#34;../../../../docs/atria/technical-components/atria-model-gateway/&#34;&gt;&lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, &lt;a href=&#34;../../../../docs/atria/technical-components/atria-rag-server/&#34;&gt;&lt;em&gt;&lt;strong&gt;atria-rag-server&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; and &lt;a href=&#34;../../../../docs/atria/technical-components/atria-rag-generate-db/&#34;&gt;&lt;em&gt;&lt;strong&gt;atria-rag-generate-db&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; is schematically shown in the following figure:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../../../images/atria/atria-model-gateway-operation.png&#34; alt=&#34;atria-model-gateway-operation&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Application&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Constructors must configure an &lt;a href=&#34;../../../../docs/atria/technical-components/application/&#34;&gt;application&lt;/a&gt; for a channel, skill or service to communicate with &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;In the application, the constructor must set the access grants for this application and all the presets that this application can use, from the ones configured in &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;.
&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;
It contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The different &lt;a href=&#34;#access-module&#34;&gt;accesses&lt;/a&gt; that are defined here for each preset.&lt;/li&gt;
&lt;li&gt;The available &lt;a href=&#34;#presets&#34;&gt;presets&lt;/a&gt;. Each of them is associated to an AI model with specific parameters.&lt;/li&gt;
&lt;li&gt;The available &lt;a href=&#34;#models&#34;&gt;AI models&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;atria-rag-server&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When using RAG (Retrieval Augmented Generation), &lt;a href=&#34;../../../../docs/atria/technical-components/atria-rag-server/&#34;&gt;&lt;em&gt;&lt;strong&gt;atria-rag-server&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; is in charge of managing the requests made to the RAG model.&lt;/li&gt;
&lt;li&gt;The available &lt;a href=&#34;../../../../docs/atria/technical-components/atria-rag-server/#project&#34;&gt;projects&lt;/a&gt; that contain information required for the execution of the RAG pipeline are included here.
&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;atria-rag-generate-db&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/atria/technical-components/atria-rag-generate-db/&#34;&gt;&lt;em&gt;&lt;strong&gt;atria-rag-generate-db&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; is in charge of feeding the databases the RAG works with.&lt;/li&gt;
&lt;li&gt;The available projects that contain the data required for reading the information sources and feed the databases are included here.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt; includes a default configuration. Constructors can use it as is or they can modify it to be adapted to their requirements or business models: Go to document &lt;a href=&#34;../../../../docs/atria/technical-guidelines/configuration/&#34;&gt;ATRIA configuration&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/atria-model-gateway/api-definition/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/atria-model-gateway/api-definition/</guid>
      <description>
        
        
        &lt;h1 id=&#34;atria-model-gateway-api-definition&#34;&gt;Atria Model Gateway API definition&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Description of Atria Model Gateway configuration API swagger&lt;/p&gt;
&lt;p&gt;This is an internal &lt;em&gt;&lt;strong&gt;ATRIA&lt;/strong&gt;&lt;/em&gt; API
&lt;br&gt;&lt;br&gt;
&lt;i class=&#34;fa-regular fa-file-lines fa-xl&#34; style=&#34;color: #0d5de7;&#34;&gt;&lt;/i&gt; &lt;a href=&#34;../../../../techFiles/apis/atria-model-gateway/atria-model-swagger.yaml&#34;&gt;Download swagger file&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;


&lt;div id=&#34;ohpen_swagger_ui&#34;&gt;&lt;/div&gt;
&lt;script&gt;
  window.onload = function () {
    const ui = SwaggerUIBundle({
      url: &#34;/techFiles/apis/atria-model-gateway/atria-model-swagger.yaml&#34;,
      dom_id: &#39;#ohpen_swagger_ui&#39;,
      presets: [
        SwaggerUIBundle.presets.apis,
        SwaggerUIStandalonePreset
      ]
    });
    window.ui = ui;
  };
&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/atria-model-gateway/environment-variables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/atria-model-gateway/environment-variables/</guid>
      <description>
        
        
        &lt;h1 id=&#34;atria-model-gateway-environment-variables&#34;&gt;ATRIA Model Gateway environment variables&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;List of environment variables handled by the &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The &lt;em&gt;&lt;strong&gt;atria-model-gateway&lt;/strong&gt;&lt;/em&gt; depends on these environment variables to be set. None of them are modifiable by the OBs.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Property&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Type&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_DATABASE&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Redis database number to be used by the server. This number is used to connect to the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_HOSTS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Redis hosts to be used by the server. This is a comma-separated list of Redis host names or IP addresses.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_MODE&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Mode of the Redis connection.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_PASSWORD&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Ppassword for the Redis connection. This password is used to authenticate the connection to the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_POOL_SIZE&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Size of the Redis connection pool. This number is used to limit the number of connections to the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_PREFIX_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Prefix for the Redis subscribers. This prefix is used to identify the subscribers in the Redis database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_CHANNELS_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Channels (separated by &amp;lsquo;,&amp;rsquo;) for the Redis subscribers. Redis prefix is added to these channels at the beginning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_REDIS_P_CHANNELS_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Pattern channels (separated by &amp;lsquo;,&amp;rsquo;) for the Redis subscribers. Redis prefix is added to these pattern channels at the beginning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_DAPR_PUBSUB_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;DAPR pubsub component name. It is used to identify DAPR component to be used.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_DAPR_PREFIX_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Prefix for the DAPR pubsub subscribers. This prefix is used to identify the subscribers in the configured database.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;AURA_DAPR_TOPICS_SUBSCRIBERS&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;string&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Topics (separated by &amp;lsquo;,&amp;rsquo;) for the DAPR pubsub subscribers. DAPR prefix is added to these topics at the beginning.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;i class=&#34;fa-solid fa-triangle-exclamation fa-xl&#34; style=&#34;color: #f45815;&#34;&gt;&lt;/i&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;environment variables related to Redis&lt;/strong&gt; are used to connect to the Redis database. This database is used to refresh the agent&amp;rsquo;s configuration, because every time the configuration of an agent is changed, it publishes this change in the corresponding channel so we can detect this change in order to refresh it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;environment variables related to DAPR&lt;/strong&gt; are used to connect to the DAPR components. These components are used to refresh the agent&amp;rsquo;s configuration, because every time the configuration of an agent is changed, it publishes this change in a corresponding topic, so we can detect this change in order to refresh it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In order to use DAPR, it is necessary to have the DAPR pubsub component configured in the DAPR configuration file, besides the DAPR &lt;a href=&#34;https://docs.dapr.io/reference/environment/&#34;&gt;environment variables&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
