kimi現在算是國內火得不行的AI工具。最近使用人太多,都經常出現響應不過來的情況。借助這波熱潮,kimi順勢推出了API使用。
來看kimi的官方介紹使用。https://platform.moonshot.cn
Moonshot的文本生成模型(指moonshot-v1)是訓練用于理解自然語言和書面語言的,它可以根據輸入生成文本輸出。對模型的輸入也被稱為“prompt”。通常我們建議您提供明確的指令以及給出一些范例,來讓模型能夠完成既定的任務,設計 prompt 本質上就是學會如何“訓練”模型。moonshot-v1模型可以用于各種任務,包括內容或代碼生成、摘要、對話、創意寫作等。
文本生成模型以 Token 為基本單位來處理文本。Token 代表常見的字符序列。例如,單個漢字'夔'可能會被分解為若干 Token 的組合,而像'中國'這樣短且常見的短語則可能會使用單個 Token 。大致來說,對于一段通常的中文文本,1 個 Token 大約相當于 1.5-2 個漢字。
需要注意的是,對于我們的文本模型,Input 和 Output 的總和長度不能超過模型的最大上下文長度。
你可以使用我們的 List Models API 來獲取當前可用的模型列表。
當前的,我們支持的模型有:
moonshot-v1-8k
: 它是一個長度為 8k 的模型,適用于生成短文本。
moonshot-v1-32k
: 它是一個長度為 32k 的模型,適用于生成長文本。
moonshot-v1-128k
: 它是一個長度為 128k 的模型,適用于生成超長文本。
以上模型的區別在于它們的最大上下文長度,這個長度包括了輸入消息和生成的輸出,在效果上并沒有什么區別。這個主要是為了方便用戶選擇合適的模型。
使用方法:
需要提供一個 API 密鑰和一個模型名稱。模型名稱在前面已經列出。那么首先申請一個API密鑰
API密鑰申請在kimi的控制臺:https://platform.moonshot.cn/console/info
賬號登錄后看到賬戶總覽里面,送了15元
在API key管理界面中新建一個key
生成后可以看到創建的key,注意:密鑰是不會在界面上顯示的,創建成功后需要自己保存。
python調用方法:
首先安裝openai庫
pip3 install openai
pip3 show openai可以查看openai的版本.openai的版本要大于1.0
來看一個代碼示例,在這個例子中讓kimi給出了python lxml庫的介紹以及使用方法。其中api_key替換成自己申請的密鑰
from openai import OpenAI
client = OpenAI(
api_key='api_key',
base_url='https://api.moonshot.cn/v1',
)
completion = client.chat.completions.create(
model='moonshot-v1-8k',
messages=[
{'role': 'system',
'content': '你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅長中文和英文的對話。你會為用戶提供安全,有幫助,準確的回答。同時,你會拒絕一切涉及恐怖主義,種族歧視,黃色暴力等問題的回答。Moonshot AI 為專有名詞,不可翻譯成其他語言。'},
{'role': 'user', 'content': '你好,請給出python庫lxml的介紹以及詳細用法'}
],
temperature=0.3,
)
print(completion.choices[0].message)
返回的結果如下。格式需要另外整理下
ChatCompletionMessage(content='你好!`lxml` 是一個用 Python 編寫的庫,它提供了一個簡單而強大的方式來處理 XML 和 HTML 數據。`lxml` 具有多種功能,包括解析、創建、修改、查詢和轉換 XML 和 HTML 文檔。它支持 XPath 和 XSLT,并且通常被認為是 Python 中處理 XML 數據最快的庫之一。\n\n### 特點:\n- 高性能:`lxml` 使用 C 語言編寫核心解析器,因此它比純 Python 解決方案更快。\n- 易用性:`lxml` 提供了一個簡潔的 API,使得處理 XML 和 HTML 變得簡單。\n- 功能全面:支持 XPath 表達式進行數據查詢,XSLT 轉換,以及輕松處理命名空間。\n\n### 安裝:\n你可以使用 pip 來安裝 `lxml` 庫。在命令行中運行以下命令:\n\n```bash\npip install lxml\n```\n\n### 基本用法:\n\n#### 解析 XML/HTML:\n```python\nfrom lxml import etree\n\n# 解析字符串\nxml_string = '<root><element>Content</element></root>'\ntree = etree.fromstring(xml_string)\n\n# 解析文件\nwith open('example.xml', 'r') as file:\n tree = etree.parse(file)\n\n# 遍歷 XML 元素\nfor element in tree.iter('element'):\n print(element.text)\n```\n\n#### 創建 XML:\n```python\n# 創建一個新的 XML 樹\nroot = etree.Element('root')\nchild = etree.Element('child')\ntext = etree.SubElement(child, 'text', text='Some content')\n\n# 添加子元素到根元素\nroot.append(child)\n\n# 將 XML 樹寫入字符串\nxml_string = etree.tostring(root, pretty_print=True)\nprint(xml_string)\n```\n\n#### 使用 XPath 查詢:\n```python\n# 假設我們已經解析了一個 XML 文檔到 tree 變量\n# 使用 XPath 查詢選擇所有 <element> 標簽\nfor element in tree.xpath('//root/element'):\n print(element.text)\n\n# 使用 XPath 選擇第一個 <element> 標簽\nelement = tree.xpath('//root/element[1]')\nprint(element[0].text if element else None)\n```\n\n#### 應用 XSLT 轉換:\n```python\nfrom lxml import xslt\n\n# 假設我們有一個 XSLT 文件 transform.xslt\nxslt_string = 'transform.xslt'\n\n# 編譯 XSLT\ntransform = xslt.parse(', rolxslt_string)\n\n# 應用 XSLT 轉換到 XML 文檔\nresult_tree = transform(tree)\nprint(etree.tostring(result_tree, pretty_print=True))\n```\n\n這些是 `lxml` 的一些基本用法。`lxml` 的功能非常強大,可以處理復雜的 XML 和 HTML 數據,包括但不限于數據抓取、數據清洗、模板轉換等。如果你需要更詳細的文檔和高級用法,可以查看 `lxml` 的官方文檔。e='assistant', function_call=None, tool_calls=None)
上傳文檔并解析的方法:
from pathlib import Pathfrom openai import OpenAI client = OpenAI( api_key='MOONSHOT_API_KEY', base_url='https://api.moonshot.cn/v1',) # xlnet.pdf 是一個示例文件, 我們支持 pdf, doc 以及圖片等格式, 對于圖片和 pdf 文件,提供 ocr 相關能力# xlnet.pdf 是一個示例文件, 我們支持 pdf, doc 以及圖片等格式, 對于圖片和 pdf 文件,提供 ocr 相關能力file_object = client.files.create(file=Path('xlnet.pdf'), purpose='file-extract') # 獲取結果# file_content = client.files.retrieve_content(file_id=file_object.id)# 注意,之前 retrieve_content api 在最新版本標記了 warning, 可以用下面這行代替# 如果是舊版本,可以用 retrieve_contentfile_content = client.files.content(file_id=file_object.id).text # 把它放進請求中messages=[ { 'role': 'system', 'content': '你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅長中文和英文的對話。你會為用戶提供安全,有幫助,準確的回答。同時,你會拒絕一切涉及恐怖主義,種族歧視,黃色暴力等問題的回答。Moonshot AI 為專有名詞,不可翻譯成其他語言。', }, { 'role': 'system', 'content': file_content, }, {'role': 'user', 'content': '請簡單介紹 xlnet.pdf 講了啥'},] # 然后調用 chat-completion, 獲取 kimi 的回答completion = client.chat.completions.create( model='moonshot-v1-32k', messages=messages, temperature=0.3,) print(completion.choices[0].message)
更多的使用方法參考API文檔:
收費限速標準
kimi的收費標準參考下表
限速標準如下
官方的解釋:
速率限制通過4種方式衡量:并發、RPM(每分鐘請求數)、TPM(每分鐘 Token 數)、TPD(每天 Token 數)。速率限制可能會在任何一種選項中達到,取決于哪個先發生。例如,你可能向 ChatCompletions 發送了 20 個請求,每個請求只有 100 個 Token ,那么你就達到了限制(如果你的 RPM 限制是 20),即使你在這些 20 個請求中沒有發滿 200k 個 Token (假設你的TPM限制是 200k)。
對網關,出于方便考慮,我們會基于請求中的 max_tokens 參數來計算速率限制。這意味著,如果你的請求中包含了 max_tokens 參數,我們會使用這個參數來計算速率限制。如果你的請求中沒有包含 max_tokens 參數,我們會使用默認的 max_tokens 參數來計算速率限制。當你發出請求后,我們會基于你請求的 token 數量加上你 max_tokens 參數的數量來判斷你是否達到了速率限制。而不考慮實際生成的 token 數量。
而在計費環節中,我們會基于你請求的 token 數量加上實際生成的 token 數量來計算費用。
我剛才的查詢消耗695個token,還沒到1M的標準
因此還沒扣錢
這收費和限速標準還是略貴