curl: APIキーを取得するScriptかと思ったら、APIキーを取得した後で実施するScriptだった件。


普段curlのScriptは一文字も変更せずに使うことが多かった。

API キーを取得
https://aistudio.google.com/apikey

APIキーを取得するScriptかと思ったら、APIキーを取得した後で実施するScriptだった。

```bash
 curl \
  -H "Content-Type: application/json" \
  -d "{\"contents\":[{\"parts\":[{\"text\":\"Explain how AI works\"}]}]}" \
  -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=YOUR_API_KEY"
{
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "API_KEY_INVALID",
        "domain": "googleapis.com",
        "metadata": {
          "service": "generativelanguage.googleapis.com"
        }
      },
      {
        "@type": "type.googleapis.com/google.rpc.LocalizedMessage",
        "locale": "en-US",
        "message": "API key not valid. Please pass a valid API key."
      }
    ]
  }
}
```

エラーも鍵と値で返してくるんだ。
勉強になる。

>安全な方法で API キーを使用してください。API キーを共有したり、誰でも閲覧できるコードに埋め込んだりしないでください。

API キー作成して、コピーして、上のスクリプトに貼り付けて実行してみた。

```bash:curl
$ curl   -H "Content-Type: application/json"   -d "{\"contents\":[{\"parts\":[{\"text\":\"Explain how AI works\"}]}]}"   -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=何桁かの文字数字列"
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "AI, or Artificial Intelligence, doesn't work in a single, unified way.  Instead, it encompasses a broad range of techniques and approaches aimed at creating systems that can perform tasks that typically require human intelligence.  These tasks include things like learning, reasoning, problem-solving, perception, and natural language understanding.\n\nHere's a breakdown of some key aspects:\n\n**1. Data is King:**  At the heart of most AI systems is data.  Massive amounts of data are used to train algorithms.  This data can be anything from images and text to sensor readings and financial transactions.  The quality and quantity of this data significantly impact the AI's performance.\n\n**2. Algorithms: The Recipe:**  Algorithms are the sets of rules and instructions that tell the AI how to process and learn from the data.  Different AI approaches use different types of algorithms. Some examples include:\n\n* **Machine Learning (ML):**  This is a broad category where systems learn from data without explicit programming.  Instead of being explicitly programmed to perform a task, they identify patterns and make predictions based on the data they are trained on.  There are several sub-types of ML:\n    * **Supervised Learning:** The algorithm is trained on a labeled dataset (data with known inputs and outputs).  The goal is to learn a mapping between inputs and outputs.  Example: Image classification (training an AI to identify cats and dogs based on labeled images).\n    * **Unsupervised Learning:** The algorithm is trained on an unlabeled dataset.  The goal is to discover hidden patterns and structures in the data. Example: Customer segmentation (grouping customers based on their purchasing behavior).\n    * **Reinforcement Learning:** The algorithm learns through trial and error by interacting with an environment.  It receives rewards for good actions and penalties for bad actions.  The goal is to learn a policy that maximizes the cumulative reward. Example: Training a robot to walk.\n\n* **Deep Learning (DL):** This is a subset of machine learning that uses artificial neural networks with multiple layers (hence \"deep\").  These networks are inspired by the structure and function of the human brain and are particularly effective at processing complex data like images, audio, and text.  Examples include image recognition, natural language processing, and speech recognition.\n\n* **Expert Systems:**  These AI systems use a knowledge base of rules and facts to reason and make decisions. They are often used in situations where human expertise is needed, such as medical diagnosis.\n\n**3. Models: The Representation:**  During the learning process, the algorithm creates a model that represents the patterns and relationships it has learned from the data.  This model can then be used to make predictions or decisions on new, unseen data.\n\n**4. Inference/Prediction:** Once trained, the AI system can use its learned model to perform inference – making predictions or decisions on new data.\n\n**5. Evaluation and Refinement:**  The performance of the AI system is evaluated using various metrics.  Based on this evaluation, the system may be refined by adjusting the algorithms, adding more data, or improving the model.\n\n\nIn short, AI works by combining large datasets, powerful algorithms, and sophisticated models to learn patterns, make predictions, and solve problems.  It's a constantly evolving field with new techniques and applications emerging all the time.  The specific approach used depends heavily on the problem being solved.\n"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "citationMetadata": {
        "citationSources": [
          {
            "startIndex": 182,
            "endIndex": 314,
            "uri": "https://marine-charts.com/voyage-optimisation/bringing-cutting-edge-ai-artificial-intelligence-to-the-maritime-shipping-industry/"
          }
        ]
      },
      "avgLogprobs": -0.20322604612870651
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 4,
    "candidatesTokenCount": 704,
    "totalTokenCount": 708
  },
  "modelVersion": "gemini-1.5-flash-latest"
}
```

英語の文章を仮訳してみた。

「AI（人工知能）は、単一の統一した方法で機能するわけではありません。代わりに、通常は人間の知能を必要とする仕事を実行できる系を作成することを目的とした、幅広い技術とやり方を網羅しています。これらの仕事には、学習、推論、問題解決、認識、自然言語理解などを含みます。\n\nいくつかの重要な側面を詳しく説明します:\n\n**1. 与件が重要:** ほとんどの AI系の中心にあるのは与件です。解法の訓練には大量の与件を使用します。この与件は、画像や文から感覚器の読み取り値や金融取引まで、あらゆるものになります。この与件の品質と量は、AI の実効に大きな影響を与えます。\n\n**2. 解法: 調理法:** 解法は、AI に与件の処理方法と学習方法を指示する一連の規則と指示です。異なる AIのやり方では、異なる型の解法を使用します。いくつかの例を以下に示します:\n\n* **機械学習 (ML):** これは、明示的な算譜なしで系が与件から学習する広い分類です。仕事を実行するように明示的に算譜するのではなく、訓練した与件に基づいて類型を識別し、予測を行います。 ML にはいくつかの細かい副分類があります。\n * **教師あり学習:** 解法は名札付き与件 (既知の入力と出力を持つ与件) で訓練します。目標は、入力と出力の対応づけを学習することです。例: 画像分類 (名札付き画像に基づいて猫と犬を識別するように AI を訓練する)。\n * **教師なし学習:** 解法は名札なし与件で訓練します。目標は、与件内の隠れ類型と構造を発見することです。例: 顧客分割 (購入行動に基づいて顧客を班分けする)。\n * **強化学習:** 解法は環境と対話することで試行錯誤を通じて学習します。良い行動に対しては報酬を受け取り、悪い行動に対しては罰を受け取ります。目標は、累積報酬を最大化する方針を学習することです。例: 人造人間に歩行を訓練する。\n\n* **深層学習 (DL):** これは、複数の層 (つまり「深層」) を持つ人工神経網を使用する機械学習の部分集合です。これらの網は、人間の脳の構造と機能に示唆を得たもので、画像、音声、文などの複雑な与件の処理に特に効果的です。例としては、画像認識、自然言語処理、音声認識などがあります。\n\n* **専門家系:** これらの AI系は、規則と事実の知識に基づいて推論し、決定を下します。医療診断など、人間の専門知識が必要な状況でよく使用します。\n\n**3. 模型: 表現:** 学習処理中に、解法は与件から学習した類型と関係を表す模型を作成します。この模型を使用して、新しい未知の与件について予測や決定を行うことができます。\n\n**4. 推論/予測:** 訓練が完了すると、AI系は学習した模型を使用して推論を実行し、新しい与件について予測や決定を行うことができます。\n\n**5.評価と改良:** AI系の実効は、さまざまな指標を使用して評価します。この評価に基づいて、解法を調整したり、与件を追加したり、模型を改善したりすることで、系を改良できます。\n\n\n簡単に言うと、AI は、大規模な与件、強力なア解法、洗練された模型を組み合わせて、類型を学習し、予測を行い、問題を解決することで機能します。これは常に進化している分野であり、常に新しい手法や応用が登場しています。使用する具体的なやり方は、解決する問題によって大きく異なります。