{"id":87700,"date":"2024-12-11T03:34:21","date_gmt":"2024-12-11T00:04:21","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/text-to-sql-generating-sql-with-nebius-ai-studio-part-2-2159\/"},"modified":"2024-12-11T03:34:21","modified_gmt":"2024-12-11T00:04:21","slug":"text-to-sql-generating-sql-with-nebius-ai-studio-part-2-2159","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/text-to-sql-generating-sql-with-nebius-ai-studio-part-2-2159\/","title":{"rendered":"\u062a\u0628\u062f\u06cc\u0644 \u0645\u062a\u0646 \u0628\u0647 SQL: \u062a\u0648\u0644\u06cc\u062f SQL \u0628\u0627 Nebius AI Studio (\u0642\u0633\u0645\u062a 2)"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n              \u062f\u0631 \u067e\u0633\u062a \u0642\u0628\u0644 \u0627\u0633\u0646\u0627\u062f\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062c\u062f\u0627\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Northwind Trader \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645. \u0645\u0627 \u0627\u0632 \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc Nebius AI Studio \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631 \u06a9\u0631\u062f\u0646 \u0627\u0633\u0646\u0627\u062f \u0648 \u062f\u0631\u062c \u0622\u0646\u0647\u0627 \u062f\u0631 Postgres \u0628\u0627 \u067e\u0633\u0648\u0646\u062f \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645. \u0627\u06cc\u0646 \u067e\u0633\u062a \u0646\u062d\u0648\u0647 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0627\u0639\u0644\u0627\u0646 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0648\u0627\u0631\u062f \u06a9\u062f \u0634\u0648\u06cc\u0645.<\/p>\n<p>  \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0633\u0627\u062f\u0647<\/p>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627 \u0646\u0645\u0648\u0646\u0647 \u0633\u0627\u0632\u06cc \u06cc\u06a9 \u06a9\u0644\u0627\u06cc\u0646\u062a Nebius \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>API_KEY = os.environ.get(&#8216;NEBIUS_API_KEY&#8217;)<\/p>\n<p>conn = psycopg.connect(dbname=&#8217;rag&#8217;,user=&#8221;postgres&#8221;, autocommit=True)<\/p>\n<p>client = OpenAI(<br \/>\n    base_url=&#8221;https:\/\/api.studio.nebius.ai\/v1\/&#8221;,<br \/>\n    api_key=API_KEY,<br \/>\n)<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0631\u0627 query \u062a\u0627\u0628\u0639 \u062a\u0639\u0628\u06cc\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u067e\u0631\u0633 \u0648 \u062c\u0648\u060c \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 create_vector \u062a\u0627\u0628\u0639 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0632 \u0634\u0628\u0627\u0647\u062a \u06a9\u0633\u06cc\u0646\u0648\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. Pgvector \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>def query(query_string):<br \/>\n    vector = create_vector(query_string)<br \/>\n    embedding_query = &#8220;[&#8221; + &#8220;,&#8221;.join(map(str, vector)) + &#8220;]&#8221;<\/p>\n<p>    # cosine similarity<br \/>\n    query_sql = f&#8221;&#8221;&#8221;<br \/>\n    SELECT chunk, embedding &lt;=&gt;'{embedding_query}&#8217; AS similarity<br \/>\n    FROM items<br \/>\n    ORDER BY embedding &lt;=&gt; &#8216;{embedding_query}&#8217;<br \/>\n    LIMIT 20;<br \/>\n    &#8220;&#8221;&#8221;<br \/>\n    data = conn.execute(query_sql).fetchall()<br \/>\n    result=[]\n    for row in data:<br \/>\n        result.append(row[0])<\/p>\n<p>    return result     <\/p>\n<p>def create_vector(text):<br \/>\n     embedding = client.embeddings.create(<br \/>\n           model=&#8221;intfloat\/e5-mistral-7b-instruct&#8221;,<br \/>\n           input=text,<br \/>\n           dimensions=1024,<br \/>\n           encoding_format=&#8221;float&#8221;,<br \/>\n           ).data[0].embedding    <\/p>\n<p>     return embedding<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0647 \u0645\u062a\u0646 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0633\u062a\u0648\u0631 OpenAI-style \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f. \u0627\u06cc\u0646 \u0627\u0639\u0644\u0627\u0646 \u0628\u0647 \u0645\u062f\u0644 Nebius Qwen2.5-Coder-7B-Instruct \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0627 SQL \u0648 \u0633\u0627\u06cc\u0631 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>def create_prompt(llm_query, database_results):<br \/>\n    content_start = (<br \/>\n        &#8220;Write a SQL statement using the database information provided.\\n\\n&#8221;+<br \/>\n        &#8220;Context:\\n&#8221;<br \/>\n    )<\/p>\n<p>    content_end = (<br \/>\n        f&#8221;\\n\\nQuestion: {llm_query}\\nAnswer:&#8221;<br \/>\n    )<\/p>\n<p>    content = (<br \/>\n        content_start + &#8220;\\n\\n&#8212;\\n\\n&#8221;.join(database_results) +<br \/>\n        content_end<br \/>\n    )<\/p>\n<p>    prompt = [{&#8216;role&#8217;: &#8216;user&#8217;, &#8216;content&#8217;: content }]\n<p>    return prompt<\/p>\n<p>def create_completion(prompt):<\/p>\n<p>    completion = client.chat.completions.create(<br \/>\n        model = &#8220;Qwen\/Qwen2.5-Coder-7B-Instruct&#8221;,<br \/>\n        messages = prompt,<br \/>\n        temperature=0.6<br \/>\n    )<\/p>\n<p>    return completion.to_json()<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645: &#8220;\u062a\u0639\u062f\u0627\u062f \u062a\u0627\u0645\u06cc\u0646 \u06a9\u0646\u0646\u062f\u06af\u0627\u0646 \u0631\u0627 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u062d\u0631\u0648\u0641 \u0627\u0644\u0641\u0628\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u06a9\u0634\u0648\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f.&#8221; \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f.<\/p>\n<p>client_query = &#8220;List number of suppliers alphabetically by country.&#8221;<br \/>\nrag_results = query(client_query)<br \/>\nprompt = create_prompt(rag_query, rag_results)<br \/>\nresponse = json.loads(create_completion(prompt))<\/p>\n<p>print(response[&#8220;choices&#8221;][0][&#8220;message&#8221;][&#8220;content&#8221;])<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627 \u0628\u0647 \u062f\u0633\u062a\u0648\u0631 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0645\u0634\u062a\u0631\u06cc \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>To list the number of suppliers alphabetically by country, you can use the following SQL statement:<\/p>\n<p>SELECT country, COUNT(*) AS number_of_suppliers<br \/>\nFROM suppliers<br \/>\nGROUP BY country<br \/>\nORDER BY country;<\/p>\n<p>This query performs the following actions:<br \/>\n&#8211; `SELECT country, COUNT(*) AS number_of_suppliers`: Selects the `country` column and counts the number of rows for each country.<br \/>\n&#8211; `FROM suppliers`: Specifies the table from which to retrieve the data.<br \/>\n&#8211; `GROUP BY country`: Groups the results by the `country` column.<br \/>\n&#8211; `ORDER BY country`: Orders the results alphabetically by the `country` column.<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u062d\u062a\u06cc\u060c \u0627\u0632 pgAdmin \u06cc\u0627 \u0627\u0628\u0632\u0627\u0631\u06cc \u0645\u0634\u0627\u0628\u0647 \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0646\u062a\u06cc\u062c\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u063a\u0630\u0627\u06cc \u0622\u0645\u0627\u062f\u0647<\/p>\n<p>\u0627\u06cc\u0646 \u06a9\u062f \u06cc\u06a9 \u0628\u0633\u062a\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f SQL \u06a9\u0627\u0631 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0627\u0633\u0646\u0627\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f:<\/p>\n<p>\u0627\u06cc\u0646 \u0633\u0646\u062f \u0634\u0627\u0645\u0644 \u0646\u0627\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u0627\u0645 \u062c\u062f\u0648\u0644 \u0628\u0648\u062f. \u0646\u0627\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062d\u0630\u0641 \u0634\u062f \u0632\u06cc\u0631\u0627 \u0646\u0627\u0645 \u062c\u062f\u0648\u0644 \u0628\u0631\u0627\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a.<br \/>\n\u062c\u062f\u0627\u0648\u0644 \u0628\u062f\u0648\u0646 \u0631\u0627\u0628\u0637\u0647 \u0628\u0627\u06cc\u062f \u062d\u0630\u0641 \u0634\u0648\u0646\u062f\u060c \u06cc\u0627 LLM \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f SQL \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0628\u0631\u0627\u06cc us_states \u062c\u062f\u0648\u0644\u06cc \u06a9\u0647 \u06a9\u0644\u06cc\u062f \u062b\u0627\u0646\u0648\u06cc\u0647 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0646\u062f\u0627\u0634\u062a.<br \/>\nQwen2.5-Coder \u0646\u0627\u0645 \u0645\u0633\u062a\u0639\u0627\u0631 \u062c\u062f\u0648\u0644 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06af\u0627\u0647\u06cc \u0627\u0648\u0642\u0627\u062a \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u062e\u062a\u0635\u0627\u0635 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0641\u0631\u0645\u0648\u0644 \u0628\u0646\u062f\u06cc \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u062f\u0627\u0631\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u062c\u062f\u0648\u0644 \u0648 \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u0645\u0634\u0627\u0628\u0647 \u0628\u0627 \u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0647\u0627 \u0646\u062a\u0627\u06cc\u062c \u0628\u0647\u062a\u0631\u06cc \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0627 \u06a9\u0646\u0648\u0646\u060c LLM \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0627\u0628\u0639 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f SQL \u0645\u0627\u0646\u0646\u062f COUNT\u060c DISTINCT\u060c GROUP BY\u060c ORDER BY \u0648 OUTER JOINS \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u062f. <\/p>\n<p>\u0646\u062a\u0627\u06cc\u062c \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u06a9\u0646\u0646\u062f\u0647 \u0627\u0633\u062a. \u067e\u0633\u062a \u0632\u06cc\u0631 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc SQL \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div data-article-id=\"2150547\" id=\"article-body\">\n<p>\u062f\u0631 \u067e\u0633\u062a \u0642\u0628\u0644 \u0627\u0633\u0646\u0627\u062f\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062c\u062f\u0627\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Northwind Trader \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645. \u0645\u0627 \u0627\u0632 \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc Nebius AI Studio \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631 \u06a9\u0631\u062f\u0646 \u0627\u0633\u0646\u0627\u062f \u0648 \u062f\u0631\u062c \u0622\u0646\u0647\u0627 \u062f\u0631 Postgres \u0628\u0627 \u067e\u0633\u0648\u0646\u062f \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645. \u0627\u06cc\u0646 \u067e\u0633\u062a \u0646\u062d\u0648\u0647 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062a\u0627\u06cc\u062c \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0627\u0639\u0644\u0627\u0646 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0648\u0627\u0631\u062f \u06a9\u062f \u0634\u0648\u06cc\u0645.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/text-to-sql-generating-sql-with-nebius-ai-studio-part-2-2159\/#%DB%8C%DA%A9_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C_%D8%B3%D8%A7%D8%AF%D9%87\" >\u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0633\u0627\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/text-to-sql-generating-sql-with-nebius-ai-studio-part-2-2159\/#%D8%BA%D8%B0%D8%A7%DB%8C_%D8%A2%D9%85%D8%A7%D8%AF%D9%87\" >\u063a\u0630\u0627\u06cc \u0622\u0645\u0627\u062f\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%DB%8C%DA%A9_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C_%D8%B3%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0633\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627 \u0646\u0645\u0648\u0646\u0647 \u0633\u0627\u0632\u06cc \u06cc\u06a9 \u06a9\u0644\u0627\u06cc\u0646\u062a Nebius \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"n\">API_KEY<\/span> <span class=\"o\">=<\/span> <span class=\"n\">os<\/span><span class=\"p\">.<\/span><span class=\"n\">environ<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">NEBIUS_API_KEY<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">conn<\/span> <span class=\"o\">=<\/span> <span class=\"n\">psycopg<\/span><span class=\"p\">.<\/span><span class=\"nf\">connect<\/span><span class=\"p\">(<\/span><span class=\"n\">dbname<\/span><span class=\"o\">=<\/span><span class=\"sh\">'<\/span><span class=\"s\">rag<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span><span class=\"n\">user<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">postgres<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">autocommit<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">client<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">OpenAI<\/span><span class=\"p\">(<\/span>\n    <span class=\"n\">base_url<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">https:\/\/api.studio.nebius.ai\/v1\/<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">api_key<\/span><span class=\"o\">=<\/span><span class=\"n\">API_KEY<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0631\u0627 <code>query<\/code> \u062a\u0627\u0628\u0639 \u062a\u0639\u0628\u06cc\u0647\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u067e\u0631\u0633 \u0648 \u062c\u0648\u060c \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>create_vector<\/code> \u062a\u0627\u0628\u0639 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0632 \u0634\u0628\u0627\u0647\u062a \u06a9\u0633\u06cc\u0646\u0648\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. Pgvector \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">query<\/span><span class=\"p\">(<\/span><span class=\"n\">query_string<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">vector<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">create_vector<\/span><span class=\"p\">(<\/span><span class=\"n\">query_string<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">embedding_query<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">[<\/span><span class=\"sh\">\"<\/span> <span class=\"o\">+<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">,<\/span><span class=\"sh\">\"<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nf\">map<\/span><span class=\"p\">(<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"n\">vector<\/span><span class=\"p\">))<\/span> <span class=\"o\">+<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">]<\/span><span class=\"sh\">\"<\/span>\n\n    <span class=\"c1\"># cosine similarity\n<\/span>    <span class=\"n\">query_sql<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">\"\"\"<\/span><span class=\"s\">\n    SELECT chunk, embedding &lt;=&gt;<\/span><span class=\"sh\">'<\/span><span class=\"si\">{<\/span><span class=\"n\">embedding_query<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span><span class=\"s\"> AS similarity\n    FROM items\n    ORDER BY embedding &lt;=&gt; <\/span><span class=\"sh\">'<\/span><span class=\"si\">{<\/span><span class=\"n\">embedding_query<\/span><span class=\"si\">}<\/span><span class=\"sh\">'<\/span><span class=\"s\">\n    LIMIT 20;\n    <\/span><span class=\"sh\">\"\"\"<\/span>\n    <span class=\"n\">data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">conn<\/span><span class=\"p\">.<\/span><span class=\"nf\">execute<\/span><span class=\"p\">(<\/span><span class=\"n\">query_sql<\/span><span class=\"p\">).<\/span><span class=\"nf\">fetchall<\/span><span class=\"p\">()<\/span>\n    <span class=\"n\">result<\/span><span class=\"o\">=<\/span><span class=\"p\">[]<\/span>\n    <span class=\"k\">for<\/span> <span class=\"n\">row<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">data<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">result<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">row<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"n\">result<\/span>     \n\n<span class=\"k\">def<\/span> <span class=\"nf\">create_vector<\/span><span class=\"p\">(<\/span><span class=\"n\">text<\/span><span class=\"p\">):<\/span>\n     <span class=\"n\">embedding<\/span> <span class=\"o\">=<\/span> <span class=\"n\">client<\/span><span class=\"p\">.<\/span><span class=\"n\">embeddings<\/span><span class=\"p\">.<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span>\n           <span class=\"n\">model<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">intfloat\/e5-mistral-7b-instruct<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span>\n           <span class=\"nb\">input<\/span><span class=\"o\">=<\/span><span class=\"n\">text<\/span><span class=\"p\">,<\/span>\n           <span class=\"n\">dimensions<\/span><span class=\"o\">=<\/span><span class=\"mi\">1024<\/span><span class=\"p\">,<\/span>\n           <span class=\"n\">encoding_format<\/span><span class=\"o\">=<\/span><span class=\"sh\">\"<\/span><span class=\"s\">float<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span>\n           <span class=\"p\">).<\/span><span class=\"n\">data<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"n\">embedding<\/span>    \n\n     <span class=\"k\">return<\/span> <span class=\"n\">embedding<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0646\u062a\u06cc\u062c\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0647 \u0645\u062a\u0646 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0633\u062a\u0648\u0631 OpenAI-style \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f. \u0627\u06cc\u0646 \u0627\u0639\u0644\u0627\u0646 \u0628\u0647 \u0645\u062f\u0644 Nebius Qwen2.5-Coder-7B-Instruct \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0627 SQL \u0648 \u0633\u0627\u06cc\u0631 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>def create_prompt(llm_query, database_results):\n    content_start = (\n        \"Write a SQL statement using the database information provided.\\n\\n\"+\n        \"Context:\\n\"\n    )\n\n    content_end = (\n        f\"\\n\\nQuestion: {llm_query}\\nAnswer:\"\n    )\n\n    content = (\n        content_start + \"\\n\\n---\\n\\n\".join(database_results) + \n        content_end\n    )\n\n    prompt = [{'role': 'user', 'content': content }]\n\n    return prompt\n\ndef create_completion(prompt):\n\n    completion = client.chat.completions.create(\n        model = \"Qwen\/Qwen2.5-Coder-7B-Instruct\",\n        messages = prompt,\n        temperature=0.6\n    )\n\n    return completion.to_json()\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645: &#8220;\u062a\u0639\u062f\u0627\u062f \u062a\u0627\u0645\u06cc\u0646 \u06a9\u0646\u0646\u062f\u06af\u0627\u0646 \u0631\u0627 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u062d\u0631\u0648\u0641 \u0627\u0644\u0641\u0628\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u06a9\u0634\u0648\u0631 \u0641\u0647\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f.&#8221; \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>client_query = \"List number of suppliers alphabetically by country.\"\nrag_results = query(client_query)\nprompt = create_prompt(rag_query, rag_results)\nresponse = json.loads(create_completion(prompt))\n\nprint(response[\"choices\"][0][\"message\"][\"content\"])\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627 \u0628\u0647 \u062f\u0633\u062a\u0648\u0631 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0645\u0634\u062a\u0631\u06cc \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>To list the number of suppliers alphabetically by country, you can use the following SQL statement:\n\nSELECT country, COUNT(*) AS number_of_suppliers\nFROM suppliers\nGROUP BY country\nORDER BY country;\n\nThis query performs the following actions:\n- `SELECT country, COUNT(*) AS number_of_suppliers`: Selects the `country` column and counts the number of rows for each country.\n- `FROM suppliers`: Specifies the table from which to retrieve the data.\n- `GROUP BY country`: Groups the results by the `country` column.\n- `ORDER BY country`: Orders the results alphabetically by the `country` column.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u062d\u062a\u06cc\u060c \u0627\u0632 pgAdmin \u06cc\u0627 \u0627\u0628\u0632\u0627\u0631\u06cc \u0645\u0634\u0627\u0628\u0647 \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0646\u062a\u06cc\u062c\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%BA%D8%B0%D8%A7%DB%8C_%D8%A2%D9%85%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  \u063a\u0630\u0627\u06cc \u0622\u0645\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u06a9\u062f \u06cc\u06a9 \u0628\u0633\u062a\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f SQL \u06a9\u0627\u0631 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0631 \u0627\u0633\u0646\u0627\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f:<\/p>\n<ul>\n<li>\u0627\u06cc\u0646 \u0633\u0646\u062f \u0634\u0627\u0645\u0644 \u0646\u0627\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u0627\u0645 \u062c\u062f\u0648\u0644 \u0628\u0648\u062f. \u0646\u0627\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062d\u0630\u0641 \u0634\u062f \u0632\u06cc\u0631\u0627 \u0646\u0627\u0645 \u062c\u062f\u0648\u0644 \u0628\u0631\u0627\u06cc \u067e\u0631\u0633 \u0648 \u062c\u0648\u0647\u0627 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a.<\/li>\n<li>\u062c\u062f\u0627\u0648\u0644 \u0628\u062f\u0648\u0646 \u0631\u0627\u0628\u0637\u0647 \u0628\u0627\u06cc\u062f \u062d\u0630\u0641 \u0634\u0648\u0646\u062f\u060c \u06cc\u0627 LLM \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f SQL \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0628\u0631\u0627\u06cc <code>us_states<\/code> \u062c\u062f\u0648\u0644\u06cc \u06a9\u0647 \u06a9\u0644\u06cc\u062f \u062b\u0627\u0646\u0648\u06cc\u0647 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0646\u062f\u0627\u0634\u062a.<\/li>\n<li>Qwen2.5-Coder \u0646\u0627\u0645 \u0645\u0633\u062a\u0639\u0627\u0631 \u062c\u062f\u0648\u0644 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06af\u0627\u0647\u06cc \u0627\u0648\u0642\u0627\u062a \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u062e\u062a\u0635\u0627\u0635 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<\/ul>\n<p>\u0641\u0631\u0645\u0648\u0644 \u0628\u0646\u062f\u06cc \u06cc\u06a9 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u062f\u0627\u0631\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0627\u0645 \u0647\u0627\u06cc \u062c\u062f\u0648\u0644 \u0648 \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u0645\u0634\u0627\u0628\u0647 \u0628\u0627 \u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0647\u0627 \u0646\u062a\u0627\u06cc\u062c \u0628\u0647\u062a\u0631\u06cc \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0627 \u06a9\u0646\u0648\u0646\u060c LLM \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0627\u0628\u0639 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f SQL \u0645\u0627\u0646\u0646\u062f COUNT\u060c DISTINCT\u060c GROUP BY\u060c ORDER BY \u0648 OUTER JOINS \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u062f. <\/p>\n<p>\u0646\u062a\u0627\u06cc\u062c \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u06a9\u0646\u0646\u062f\u0647 \u0627\u0633\u062a. \u067e\u0633\u062a \u0632\u06cc\u0631 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc SQL \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u067e\u0633\u062a \u0642\u0628\u0644 \u0627\u0633\u0646\u0627\u062f\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062c\u062f\u0627\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 Northwind Trader \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645. \u0645\u0627 \u0627\u0632 \u0645\u062f\u0644 \u062a\u0639\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc Nebius AI Studio \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0631 \u06a9\u0631\u062f\u0646 \u0627\u0633\u0646\u0627\u062f \u0648 \u062f\u0631\u062c \u0622\u0646\u0647\u0627 \u062f\u0631 Postgres \u0628\u0627 \u067e\u0633\u0648\u0646\u062f \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645. \u0627\u06cc\u0646 \u067e\u0633\u062a \u0646\u062d\u0648\u0647 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":87701,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-87700","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/87700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=87700"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/87700\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/87701"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=87700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=87700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=87700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}