前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速搭建一个集成"腾讯元器"的网站

快速搭建一个集成"腾讯元器"的网站

原创
作者头像
IT蜗壳-Tango
修改2024-06-17 01:37:36
18500
代码可运行
修改2024-06-17 01:37:36
举报
运行总次数:0
代码可运行

关于元器

腾讯元器是基于混元大模型开发的一站式智能体创作与分发平台。无需代码,您可快捷创建AI智能体/插件/知识库。还能将智能体一键分发到QQ,微信客服,腾讯云等渠道上,享受鹅厂的丰厚流量扶持!

创建智能体

在登录元器的后台后(https://yuanqi.tencent.com/) 我们可以很方便的创建的自己智能体

按照指引将必要的信息填写完整

这里的头像甚至可以根据你的简介进行AI生成,就非常棒。

完成基础配置后,我们可以在右侧看到一个测试画面

如果符合你的预期要求,则可以将其发布。

我们可以选择可见范围,以及发布的平台。我们本次演示使用的API功能,因此下方的平台可以不用选择。

填写好发布记录后就可以发布了。

等待审核

网站搭建

在等待审核期间,我们可以先将网站搭建起来

我们先在Gitee中创建代码仓库,方便我们上传到云服务器。

创建本地项目

创建一个虚拟环境

代码语言:bash
复制
conda create -n yaunqi_be python=3.11 -y

激活虚拟环境

安装Django框架

代码语言:bash
复制
pip install django -i https://mirrors.cloud.tencent.com/pypi/simple
pip install Pillow -i https://mirrors.cloud.tencent.com/pypi/simple
pip install requests -i https://mirrors.cloud.tencent.com/pypi/simple

创建一个web项目MyEye

代码语言:bash
复制
django-admin startproject config
rename config myeye

用你擅长的开发工具打开下项目,并创建一个app

代码语言:bash
复制
>python manage.py startapp upload

配置项目

myproject/settings.py 文件中,添加应用和媒体文件的设置:

代码语言:python
代码运行次数:0
复制
python复制代码INSTALLED_APPS = [
    ...
    'upload'
]

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

# 确保添加静态文件目录
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']

创建模型

upload/models.py 中定义一个模型来存储上传的图片:

代码语言:python
代码运行次数:0
复制
python复制代码from django.db import models

class Image(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images/')

    def __str__(self):
        return self.title

创建表单

upload/forms.py 中创建一个表单,用于上传图片:

代码语言:python
代码运行次数:0
复制
from django import forms
from .models import Image

class ImageForm(forms.ModelForm):
    class Meta:
        model = Image
        fields = ['title', 'image']

创建视图

代码语言:python
代码运行次数:0
复制
from django.shortcuts import render, redirect
from django.urls import reverse
from .forms import ImageForm
from .models import Image

def image_upload_view(request):
    if request.method == 'POST':
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid():
            image = form.save()
            return redirect(reverse('image_detail', kwargs={'pk': image.pk}))
    else:
        form = ImageForm()
    return render(request, 'upload/image_upload.html', {'form': form})

def image_list_view(request):
    images = Image.objects.all()
    return render(request, 'upload/image_list.html', {'images': images})

def image_detail_view(request, pk):
    image = Image.objects.get(pk=pk)
    return render(request, 'upload/image_detail.html', {'image': image})

创建模板

upload/templates/upload/ 目录下创建两个模板文件 image_upload.htmlimage_list.html

image_upload.html

代码语言:html
复制
<!DOCTYPE html>
<html>
<head>
    <title>Upload Image</title>
</head>
<body>
    <h1>Upload Image</h1>
    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Upload</button>
    </form>
    <a href="{% url 'image_list' %}">View Images</a>
</body>
</html>

image_list.html

代码语言:html
复制
<!DOCTYPE html>
<html>
<head>
    <title>Image List</title>
</head>
<body>
    <h1>Image List</h1>
    <ul>
        {% for image in images %}
            <li>
                <h2>{{ image.title }}</h2>
                <img src="{{ image.image.url }}" alt="{{ image.title }}" style="max-width: 300px;">
            </li>
        {% endfor %}
    </ul>
    <a href="{% url 'image_upload' %}">Upload Another Image</a>
</body>
</html>

image_detail.html:

代码语言:html
复制
<!DOCTYPE html>
<html>
<head>
    <title>Image Detail</title>
</head>
<body>
    <h1>{{ image.title }}</h1>
    <img src="{{ image.image.url }}" alt="{{ image.title }}" style="max-width: 300px;">
    <p>Image URL: <a href="{{ image.image.url }}">{{ image.image.url }}</a></p>
    <a href="{% url 'image_list' %}">View All Images</a>
    <a href="{% url 'image_upload' %}">Upload Another Image</a>
</body>
</html>

配置 URL 路由

myproject/urls.py 文件中添加新的 URL 路由:

代码语言:python
代码运行次数:0
复制
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path
from upload.views import image_upload_view, image_list_view, image_detail_view

urlpatterns = [
    path('admin/', admin.site.urls),
    path('upload/', image_upload_view, name='image_upload'),
    path('images/', image_list_view, name='image_list'),
    path('images/<int:pk>/', image_detail_view, name='image_detail'),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然后,运行以下命令创建数据库表:

代码语言:bash
复制
python manage.py makemigrations
python manage.py migrate

创建要给超级管理员,用于后期我们管理后台

启动服务

代码语言:bash
复制
python manage.py runserver

访问Upload Image看到如下画面,尝试上传一张图片看看效果

我们稍后会在这里将元器识别的内容显示在下方。

集成元器智能体

选择调用API,会看到ID和Token,记下来我们后面要用到

在项目添加一个如下方法

代码语言:python
代码运行次数:0
复制
def get_img_info(img_path):
    url = 'https://open.hunyuan.tencent.com/openapi/v1/agent/chat/completions'
    headers = {
        'X-Source': 'openapi',
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {settings.YUANQI_TOKEN}'
    }
    data = {
        "assistant_id": settings.YUANQI_ID,
        "user_id": "username",
        "stream": False,
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "告诉我这个图片是什么? " + img_path
                    }
                ]
            }
        ]
    }
    json_data = json.dumps(data)
    response = requests.post(url, headers=headers, json=data)
    print(response.text)
    return response.json()["choices"][0]["message"]["content"]

并修改,image_detail_view方法

代码语言:python
代码运行次数:0
复制
def image_detail_view(request, pk):
    image = Image.objects.get(pk=pk)
    info = get_img_info(image.url)
    return render(request, 'upload/image_detail.html', {'image': image, "info": info})

将项目推送到腾讯云服务器

搜集项目依赖文件

代码语言:bash
复制
pip freeze>req.txt

push到仓库

登录云服务器拉取项目

同样先创建一下虚拟环境(后期采用Docker部署就没有这么麻烦了)

最终的效果如上,这只是一个演示,有时间我们再完善一下,让它变得更漂亮些。

总结

元器智能体在创建时时非常方便的,通过API调用创建好的智能体也是很方便,是一个非常值得尝试的一个新方式。今天的内容就是这些,我是Tango,一个热爱分享技术的程序猿,我们下期见。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于元器
  • 创建智能体
  • 网站搭建
    • 创建本地项目
      • 配置项目
        • 创建模型
          • 创建表单
            • 创建视图
              • 创建模板
                • 配置 URL 路由
                  • 启动服务
                  • 集成元器智能体
                  • 将项目推送到腾讯云服务器
                  • 总结
                  相关产品与服务
                  云服务器
                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档