
一文快速了解如何調用天工API接口
“騰訊元器”是基于騰訊混元大模型的一站式智能體制作平臺,支持通過下述能力對大模型進行增強:
通過元器平臺制作的智能體,目前支持32k token上下文長度(某次回答過程中的提示詞+機器回答的token長度,一個token約為1.8個中文字符)。工作流的超時運行時間為5分鐘。智能體的回復上限時間是90s。
已發布的智能體,支持通過API方式與智能體進行交互。這種API的調用方式,適合有自己業務場景的用戶,將智能體服務嵌入到自己的產品、服務中。當前每個元器用戶有一個億的token體驗使用額度,額度用完后,將無法調用。目前已經上線API付費能力,付費后,可以支持更多次調用。
在騰訊混元創建旅游規劃生成助手智能體并發布,通過API接口調用智能體,發送相關提示詞,生成旅行規劃返回并展示。
從API HUB中的“AI技術”分類中找到AI大模型API,選擇騰訊混元大模型API
登錄騰訊混元后創建智能體
輸入要創建智能體的名稱、簡介、頭像(可以AI生成)、詳細設定等相關信息~
調試沒有問題后就可以發布智能體,并等待審核成功~
審核通過后,到我的創建中找到創建的智能體
在彈窗中復制自己的智能體ID和Token(注意不要泄露,泄露后要及時重置)
這里我們使用到的是tiptap富文本編輯器
代碼如下:
<template>
<div>
<div>
<button @click="editor.chain().focus().setParagraph().run()">正文</button>
<button @click="editor.chain().focus().toggleHeading({ level: 1 }).run()">H1</button>
<button @click="editor.chain().focus().toggleHeading({ level: 2 }).run()">H2</button>
<button @click="editor.chain().focus().toggleHeading({ level: 3 }).run()">H3</button>
<button @click="editor.chain().focus().toggleHeading({ level: 4 }).run()">H4</button>
<button @click="editor.chain().focus().toggleHeading({ level: 5 }).run()">H5</button>
<button @click="editor.chain().focus().toggleHeading({ level: 6 }).run()">H6</button>
<button @click="editor.chain().focus().toggleBlockquote().run()">引用</button>
<br>
<button @click="editor.chain().focus().toggleBold().run()">加粗</button>
<button @click="editor.chain().focus().toggleUnderline().run()">下劃線</button>
<button @click="editor.chain().focus().toggleItalic().run()">斜體</button>
<button @click="editor.chain().focus().toggleStrike().run()">刪除線</button>
<button @click="editor.chain().focus().toggleCode().run()">行內代碼</button>
<button @click="editor.chain().focus().toggleSuperscript().run()">上標</button>
<button @click="editor.chain().focus().toggleSubscript().run()">下標</button>
<button @click="editor.chain().focus().unsetAllMarks().run()">清除格式</button>
<input
type="color"
@input="editor.chain().focus().setColor($event.target.value).run()"
:value="editor.getAttributes('textStyle').color"
>
<button @click="editor.chain().focus().toggleHighlight({ color: '#8ce99a' }).run()">高亮</button>
<button @click="editor.chain().focus().setFontSize('20px').run()">20px</button>
<br>
<button @click="editor.chain().focus().toggleBulletList().run()">無序列表</button>
<button @click="editor.chain().focus().toggleOrderedList().run()">有序列表</button>
<button @click="editor.chain().focus().toggleTaskList().run()">待辦</button>
<br>
<button @click="editor.chain().focus().setTextAlign('left').run()">左對齊</button>
<button @click="editor.chain().focus().setTextAlign('center').run()">居中對齊</button>
<button @click="editor.chain().focus().setTextAlign('right').run()">右對齊</button>
<button @click="editor.chain().focus().setTextAlign('justify').run()">兩端對齊</button>
<button @click="editor.chain().focus().unsetTextAlign().run()">不設置對齊</button>
</div>
<div style="width: 500px;height: 500px;border: 1px solid #ccc">
<editor-content class="tiptap" style="border: 1px solid pink;height: 100%;overflow-y: auto" :editor="editor"/>
</div>
<div>
<el-input style="width: 500px;" v-model="prompt" type="textarea"></el-input>
<br>
<el-button @click="generateText">生成長文本</el-button>
</div>
</div>
</template>
<script>
import {Editor, EditorContent} from '@tiptap/vue-2'
import StarterKit from '@tiptap/starter-kit'
import Underline from '@tiptap/extension-underline'
import Superscript from '@tiptap/extension-superscript'
import Subscript from "@tiptap/extension-subscript"
import Text from '@tiptap/extension-text'
import TextStyle from '@tiptap/extension-text-style'
import {Color} from '@tiptap/extension-color'
import Highlight from '@tiptap/extension-highlight'
import FontSize from './fontSize'
import TaskItem from '@tiptap/extension-task-item'
import TaskList from '@tiptap/extension-task-list'
import TextAlign from '@tiptap/extension-text-align'
import {marked} from 'marked';
import axios from "axios";
export default {
name: "Tiptap.vue",
components: {
EditorContent,
},
data() {
return {
editor: null,
// 提示詞
prompt: '到北京的旅游攻略,時間:7月15日到7月20日,我和我的家人,包括爺爺奶奶,他們比較喜歡歷史悠久的名勝古跡和自然山水,有哪些必打卡的地方,需要攜帶哪些物品,有什么注意的地方,我需要提前準備什么',
}
},
mounted() {
this.editor = new Editor({
content: '',
extensions: [StarterKit,
Underline,
Superscript,
Subscript,
Text,
TextStyle,
Color,
Highlight,
FontSize,
TaskList,
TaskItem.configure({
nested: true,
}),
TextAlign.configure({
types: ['heading', 'paragraph'],
}),],
})
},
beforeDestroy() {
this.editor.destroy()
},
created() {
},
methods: {
// 生成長文本
generateText() {
const url = 'https://open.hunyuan.tencent.com/openapi/v1/agent/chat/completions';
const headers = {
'X-Source': 'openapi',
'Content-Type': 'application/json',
'Authorization': 'Bearer 你的Token'
};
const data = {
"assistant_id": "你的智能體ID",
"user_id": "username",
"stream": false,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": this.prompt,
}
]
}
]
};
axios.post(url, data, {headers})
.then(response => {
console.log(response.data);
let content = response.data.choices[0].message.content;
console.log(content)
let html = marked(content, {sanitize: true});
this.editor.commands.setContent(html);
})
.catch(error => {
console.error('There was an error!', error);
// 處理錯誤情況
});
}
}
}
</script>
<style scoped lang="scss"></style>
通過上述代碼,我們可以創建一個旅游攻略助手,輸入相關提示詞后,點擊“生成長文本”按鈕即可生成對應的旅游攻略內容,并展示在tiptap編輯器中。
通過騰訊元器平臺,我們能夠輕松創建和發布智能體,利用強大的混元大模型實現各種復雜的任務。本文介紹了如何創建一個旅游攻略生成助手,包括創建智能體、配置提示詞、集成tiptap富文本編輯器并通過API與智能體交互生成內容。通過這些步驟,我們展示了如何利用騰訊混元平臺提供的強大工具和功能,快速構建和部署智能體服務,為用戶提供個性化和高效的解決方案。元器平臺的多插件支持和工作流功能,使開發者能夠靈活定制和擴展智能體的功能,滿足各種業務需求。