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

# 將 LlamaIndex 與 CometAPI 搭配使用

> 使用本指南透過設定 base URL、API key，以及 model 或 provider 選項來設定 LlamaIndex 與 CometAPI。

LlamaIndex 提供 `CometLLM` 類別，作為與 CometAPI 的一級整合。使用它可透過 CometAPI 型錄中的任何模型，為 RAG 流程、代理程式與 LLM 鏈提供能力。

## 先決條件

* Python 3.8+
* 具有有效 API key 的 CometAPI 帳戶 — [在此取得](https://www.cometapi.com/console/token)

<Steps>
  <Step title="安裝 LlamaIndex CometAPI 整合">
    ```bash theme={null}
    pip install llama-index-llms-cometapi llama-index
    ```
  </Step>

  <Step title="設定您的 API key">
    ```python theme={null}
    from llama_index.llms.cometapi import CometLLM
    import os

    os.environ["COMETAPI_KEY"] = "<COMETAPI_KEY>"
    api_key = os.getenv("COMETAPI_KEY")
    ```

    <Note>
      使用環境變數比在腳本中硬編碼憑證更安全。
    </Note>
  </Step>

  <Step title="初始化模型並進行補全呼叫">
    ```python theme={null}
    from llama_index.core.llms import ChatMessage

    llm = CometLLM(
        api_key=api_key,
        max_tokens=256,
        context_window=4096,
        model="your-model-id",
    )

    # Chat call
    messages = [
        ChatMessage(role="system", content="You are a helpful assistant"),
        ChatMessage(role="user", content="Say 'Hi' only!"),
    ]
    resp = llm.chat(messages)
    print(resp)

    # Completion call
    resp = llm.complete("Who is Kaiming He?")
    print(resp)
    ```
  </Step>

  <Step title="啟用串流">
    使用 `stream_chat` 或 `stream_complete` 來取得即時分塊輸出：

    ```python theme={null}
    # Streaming chat
    message = ChatMessage(role="user", content="Tell me what ResNet is")
    for chunk in llm.stream_chat([message]):
        print(chunk.delta, end="")

    # Streaming completion
    for chunk in llm.stream_complete("Tell me about Large Language Models"):
        print(chunk.delta, end="")
    ```
  </Step>
</Steps>

<AccordionGroup>
  <Accordion title="提示與疑難排解">
    * **模型**：請參閱 [CometAPI Models 頁面](/zh-Hant/overview/models) 了解所有可用選項。
    * **使用其他模型**：使用不同的目前 model ID 進行初始化，例如 `CometLLM(api_key=api_key, model="your-model-id", max_tokens=1024)`。
    * **微調（Fine-tuning）**：將 `temperature` 和 `max_tokens` 直接傳入 `CometLLM(...)`。
    * **錯誤處理**：將呼叫包在 `try/except` 中，以捕捉 key 錯誤或網路問題。
    * **安全性**：絕不要將 API key 提交到版本控制。請使用環境變數。
    * **更多文件**：[LlamaIndex 文件](https://docs.llamaindex.ai/) — [CometAPI 快速開始](/zh-Hant/overview/quick-start) — [Colab 範例](https://colab.research.google.com/github/run-llama/llama_index/blob/main/docs/docs/examples/llm/cometapi.ipynb)
  </Accordion>
</AccordionGroup>

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/llamaindex#howto",
        "name": "使用 LlamaIndex 搭配 CometAPI",
        "description": "使用本指南，透過設定 base URL、API key，以及模型或供應商選項，來設定 LlamaIndex 與 CometAPI。",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/llamaindex#step-1",
            "position": 1,
            "name": "安裝 LlamaIndex CometAPI 整合",
            "text": "完成「使用 LlamaIndex 搭配 CometAPI」指南中的「安裝 LlamaIndex CometAPI 整合」步驟。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/llamaindex#step-2",
            "position": 2,
            "name": "設定您的 API key",
            "text": "將您的 CometAPI API key 儲存在整合所使用的環境變數或設定欄位中。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/llamaindex#step-3",
            "position": 3,
            "name": "初始化模型並進行補全呼叫",
            "text": "完成「使用 LlamaIndex 搭配 CometAPI」指南中的「初始化模型並進行補全呼叫」步驟。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/llamaindex#step-4",
            "position": 4,
            "name": "啟用串流",
            "text": "完成「使用 LlamaIndex 搭配 CometAPI」指南中的「啟用串流」步驟。"
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "CometAPI 文件",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "整合",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "使用 LlamaIndex 搭配 CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/llamaindex"
          }
        ]
      }
    ]
    }
    `}
</script>
