> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# gpudbsqlcontext

> gpudbsqlcontext — Kinetica Python API

<div className="kinetica-pydoc">
  <div itemprop="articleBody">
    <div id="sql-gpt-contexts" className="section">
      <h1>SQL-GPT Contexts</h1>

      <div className="dl py class">
        <div className="dt sig sig-object py" id="gpudb.GPUdbSqlContext"> <span className="em property"><span className="k"><span className="pre">class</span></span><span className="w"> </span></span><span className="sig-prename descclassname"><span className="pre">gpudb.</span></span><span className="sig-name descname"><span className="pre">GPUdbSqlContext</span></span><span className="sig-paren">(</span><span className="em sig-param"><span className="n"><span className="pre">name</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">str</span></span></span>, <span className="em sig-param"><span className="n"><span className="pre">tables</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">List</span><span className="p"><span className="pre">\[</span></span><a className="reference internal" href="#gpudb.GPUdbTableClause" title="gpudb_sql_context.GPUdbTableClause"><span className="pre">GPUdbTableClause</span></a><span className="p"><span className="pre">]</span></span></span></span>, <span className="em sig-param"><span className="n"><span className="pre">samples</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><a className="reference internal" href="#gpudb.GPUdbSamplesClause" title="gpudb_sql_context.GPUdbSamplesClause"><span className="pre">GPUdbSamplesClause</span></a></span></span><span className="sig-paren">)</span></div>

        <div className="dd">
          <p>Represents a collection of clauses that comprise a SQL-GPT context.</p>
          <p>Example:</p>

          <div className="highlight-default notranslate">
            ```
            sql_context = GPUdbSqlContext(
                name = "sa_quickstart.nyc_ctx",
                tables = [table_ctx],
                samples = samples_ctx)
            create_context_sql = sql_context.build_sql()
            db.execute(create_context_sql)
            ```
          </div>

          <p><strong>Parameters</strong></p>

          <blockquote>
            <div>
              <div className="dl simple">
                <div className="dt">name (<span className="em">str</span>) –</div>

                <div className="dd">
                  <p>Fully qualified name of the context. (e.g. “schema.context”)</p>
                </div>

                <div className="dt">tables (<span className="em">list\[GPUdbTableClause]</span>) –</div>

                <div className="dd">
                  <p>A list of <a className="reference internal" href="#gpudb.GPUdbTableClause" title="gpudb.GPUdbTableClause"><code className="xref py py-class docutils literal notranslate"><span className="pre">GPUdbTableClause</span></code></a> objects representing the Kinetica tables (and metadata) referenced in this context.</p>
                </div>

                <div className="dt">samples (<span className="em">GPUdbSamplesClause</span>) –</div>

                <div className="dd">
                  <p>A <a className="reference internal" href="#gpudb.GPUdbSamplesClause" title="gpudb.GPUdbSamplesClause"><code className="xref py py-class docutils literal notranslate"><span className="pre">GPUdbSamplesClause</span></code></a> object representing query/answer pairs referenced in this context.</p>
                </div>
              </div>
            </div>
          </blockquote>

          <div className="dl py method">
            <div className="dt sig sig-object py" id="gpudb.GPUdbSqlContext.build_sql"> <span className="sig-name descname"><span className="pre">build\_sql</span></span><span className="sig-paren">(</span><span className="sig-paren">)</span> <span className="sig-return"><span className="sig-return-icon">→</span> <span className="sig-return-typehint"><span className="pre">str</span></span></span></div>

            <div className="dd">
              <p>Format this <a className="reference internal" href="#gpudb.GPUdbSqlContext" title="gpudb.GPUdbSqlContext"><code className="xref py py-class docutils literal notranslate"><span className="pre">GPUdbSqlContext</span></code></a> as a SQL <code className="docutils literal notranslate"><span className="pre">CREATE</span> <span className="pre">CONTEXT</span></code> statement. The result can be passed to <code className="xref py py-meth docutils literal notranslate"><span className="pre">GPUDB.execute()</span></code> to create the context.</p>

              <div className="dl simple">
                <div className="dt">Returns (str):</div>

                <div className="dd">
                  <p>The SQL-formatted <code className="docutils literal notranslate"><span className="pre">CREATE</span> <span className="pre">CONTEXT</span></code> statement.</p>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div className="dl py class">
        <div className="dt sig sig-object py" id="gpudb.GPUdbTableClause"> <span className="em property"><span className="k"><span className="pre">class</span></span><span className="w"> </span></span><span className="sig-prename descclassname"><span className="pre">gpudb.</span></span><span className="sig-name descname"><span className="pre">GPUdbTableClause</span></span><span className="sig-paren">(</span><span className="em sig-param"><span className="n"><span className="pre">table</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">str</span></span></span>, <span className="em sig-param"><span className="n"><span className="pre">comment</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">str</span><span className="w"> </span><span className="p"><span className="pre">|</span></span><span className="w"> </span><span className="pre">None</span></span><span className="w"> </span><span className="o"><span className="pre">=</span></span><span className="w"> </span><span className="default_value"><span className="pre">None</span></span></span>, <span className="em sig-param"><span className="n"><span className="pre">rules</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">List</span><span className="p"><span className="pre">\[</span></span><span className="pre">str</span><span className="p"><span className="pre">]</span></span><span className="w"> </span><span className="p"><span className="pre">|</span></span><span className="w"> </span><span className="pre">None</span></span><span className="w"> </span><span className="o"><span className="pre">=</span></span><span className="w"> </span><span className="default_value"><span className="pre">None</span></span></span>, <span className="em sig-param"><span className="n"><span className="pre">col\_comments</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">Dict</span><span className="p"><span className="pre">\[</span></span><span className="pre">str</span><span className="p"><span className="pre">,</span></span><span className="w"> </span><span className="pre">str</span><span className="p"><span className="pre">]</span></span><span className="w"> </span><span className="p"><span className="pre">|</span></span><span className="w"> </span><span className="pre">None</span></span><span className="w"> </span><span className="o"><span className="pre">=</span></span><span className="w"> </span><span className="default_value"><span className="pre">None</span></span></span><span className="sig-paren">)</span></div>

        <div className="dd">
          <p>A <a className="reference internal" href="#gpudb.GPUdbTableClause" title="gpudb.GPUdbTableClause"><code className="xref py py-class docutils literal notranslate"><span className="pre">GPUdbTableClause</span></code></a> represents the table clause of a SQL-GPT context and can convert its contents to the SQL form expected by a <code className="docutils literal notranslate"><span className="pre">CREATE</span> <span className="pre">CONTEXT</span></code> statement.</p>
          <p>Example:</p>

          <div className="highlight-default notranslate">
            ```
            table_ctx = GPUdbTableClause(
                table = "sa_quickstart.nyct2020",
                comment = "This table contains spatial boundaries and attributes of the New York City.",
                col_comments = dict(
                    gid = "This is the unique identifier for each record in the table.",
                    geom = "The spatial boundary in WKT format of each NTA neighborhood.",
                    BoroCode = "The code of the borough to which the neighborhood belongs to."),
                rules = ["Join this table using STXY_WITHIN() = 1",
                        "Another rule here"])
            ```
          </div>

          <p><strong>Parameters</strong></p>

          <blockquote>
            <div>
              <div className="dl simple">
                <div className="dt">table (<span className="em">str</span>) –</div>

                <div className="dd">
                  <p>Fully qualified table name (e.g. “schema.table”)</p>
                </div>

                <div className="dt">comment (<span className="em">str</span>) –</div>

                <div className="dd">
                  <p>Comment for the table.</p>
                </div>

                <div className="dt">rules (<span className="em">list\[str]</span>) –</div>

                <div className="dd">
                  <p>A list of rules that apply to the table.</p>
                </div>

                <div className="dt">col\_comments (<span className="em">dict\[str,str]</span>) –</div>

                <div className="dd">
                  <p>A dictionary with mapping of column names to column comments.</p>
                </div>
              </div>
            </div>
          </blockquote>

          <div className="dl py method">
            <div className="dt sig sig-object py" id="gpudb.GPUdbTableClause.format_sql"> <span className="sig-name descname"><span className="pre">format\_sql</span></span><span className="sig-paren">(</span><span className="sig-paren">)</span> <span className="sig-return"><span className="sig-return-icon">→</span> <span className="sig-return-typehint"><span className="pre">str</span></span></span></div>

            <div className="dd">
              <p>Format the clause as a SQL string.</p>
            </div>
          </div>
        </div>
      </div>

      <div className="dl py class">
        <div className="dt sig sig-object py" id="gpudb.GPUdbSamplesClause"> <span className="em property"><span className="k"><span className="pre">class</span></span><span className="w"> </span></span><span className="sig-prename descclassname"><span className="pre">gpudb.</span></span><span className="sig-name descname"><span className="pre">GPUdbSamplesClause</span></span><span className="sig-paren">(</span><span className="em sig-param"><span className="n"><span className="pre">samples</span></span><span className="p"><span className="pre">:</span></span><span className="w"> </span><span className="n"><span className="pre">List</span><span className="p"><span className="pre">\[</span></span><span className="pre">Tuple</span><span className="p"><span className="pre">\[</span></span><span className="pre">str</span><span className="p"><span className="pre">,</span></span><span className="w"> </span><span className="pre">str</span><span className="p"><span className="pre">]</span></span><span className="p"><span className="pre">]</span></span><span className="w"> </span><span className="p"><span className="pre">|</span></span><span className="w"> </span><span className="pre">None</span></span><span className="w"> </span><span className="o"><span className="pre">=</span></span><span className="w"> </span><span className="default_value"><span className="pre">None</span></span></span><span className="sig-paren">)</span></div>

        <div className="dd">
          <p>A <a className="reference internal" href="#gpudb.GPUdbSamplesClause" title="gpudb.GPUdbSamplesClause"><code className="xref py py-class docutils literal notranslate"><span className="pre">GPUdbSamplesClause</span></code></a> represents the samples clause of a SQL-GPT context and can convert its contents to the SQL form expected by a <code className="docutils literal notranslate"><span className="pre">CREATE</span> <span className="pre">CONTEXT</span></code> statement.</p>
          <p>Example:</p>

          <div className="highlight-default notranslate">
            ```
            samples_ctx = GPUdbSamplesClause(samples = [
                ("What are the shortest, average, and longest trip lengths for each taxi vendor?",
                """
                SELECT
                    th.vendor_id,
                    MIN(th.trip_distance) AS shortest_trip_length,
                    AVG(th.h.trip_distance) AS average_trip_length,
                    MAX(th.trip_distance) AS longest_trip_length
                FROM sa_quickstart.taxi_data_historical AS th
                GROUP BY th.vendor_id;
                """),

                ("How many trips did each taxi vendor make to JFK International Airport?",
                """
                SELECT
                    th.vendor_id,
                    COUNT(*) AS trip_count
                FROM sa_quickstart.taxi_data_historical AS th
                JOIN sa_quickstart.nyct2020 AS n_dropoff ON KI_FN.STXY_WITHIN(th.dropoff_longitude, th.dropoff_latitude, n_dropoff.geom)
                AND n_dropoff.NTAName = 'John F. Kennedy International Airport'
                GROUP BY th.vendor_id;
                """),
                ])
            ```
          </div>

          <p><strong>Parameters</strong></p>

          <blockquote>
            <div>
              <div className="dl simple">
                <div className="dt">samples (<span className="em">list\[tuple\[str,str]]</span>) –</div>

                <div className="dd">
                  <p>A list of tuples containing question/sql pairs.</p>
                </div>
              </div>
            </div>
          </blockquote>

          <div className="dl py method">
            <div className="dt sig sig-object py" id="gpudb.GPUdbSamplesClause.format_sql"> <span className="sig-name descname"><span className="pre">format\_sql</span></span><span className="sig-paren">(</span><span className="sig-paren">)</span> <span className="sig-return"><span className="sig-return-icon">→</span> <span className="sig-return-typehint"><span className="pre">str</span></span></span></div>

            <div className="dd">
              <p>Format the clause as a SQL string.</p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
