diff --git a/api/emblemapi/settings.py b/api/emblemapi/settings.py index 126336b..ce68afd 100644 --- a/api/emblemapi/settings.py +++ b/api/emblemapi/settings.py @@ -185,3 +185,6 @@ EMAIL_HOST_PASSWORD = 'N72yBNi4cJw' SERVER_EMAIL = EMAIL_HOST_USER CSRF_TRUSTED_ORIGINS = ['https://*.themblem.com', 'https://themblem.com'] + +KIMI_API_KEY = "sk-IKA7ZnDrv44mfaorjF5UZjSsml66yaBNdcrASJsV90hCSdgn" +KIMI_API_URL = "https://api.moonshot.cn/v1" diff --git a/api/products/README_AI_CHAT.md b/api/products/README_AI_CHAT.md new file mode 100644 index 0000000..5c428fe --- /dev/null +++ b/api/products/README_AI_CHAT.md @@ -0,0 +1,180 @@ +# AI聊天功能使用说明 + +## 概述 + +AI聊天模块为徵象防伪验证平台提供智能客服功能,基于Moonshot Kimi K2 API实现。 + +## 文件结构 + +``` +api/products/ +├── aichat.py # 核心AI聊天库 +├── management/ +│ └── commands/ +│ └── chat.py # Django管理命令 +└── README_AI_CHAT.md # 本文档 +``` + +## 使用方法 + +### 1. 作为Django管理命令运行(推荐) + +```bash +# 进入Django项目目录 +cd api + +# 启动AI聊天 +python manage.py chat + +# 使用自定义参数 +python manage.py chat --api-key "your_key" --history-file "~/.custom_history" +``` + +**可用参数:** +- `--history-file`: 指定历史文件路径 (默认: ~/.aichat_history) + +**注意:** API密钥和URL现在从Django设置中自动获取,无需命令行参数 + +### 2. 作为Python库导入 + +```python +from products.aichat import AIChatService + +# 创建服务实例 +service = AIChatService() + +# 发送消息 +response = service.chat("你好,请介绍一下徵象平台") + +# 查看对话历史 +history = service.get_conversation_history() + +# 清空历史 +service.clear_history() +``` + +### 3. 直接运行库文件(测试模式) + +```bash +python api/products/aichat.py +``` + +## 功能特性 + +### 核心功能 +- **智能对话**: 基于Kimi K2的AI客服 +- **工具调用**: 支持二维码扫描等工具 +- **多轮对话**: 完整的对话历史管理 +- **品牌定制**: 徵象平台专属系统提示词 + +### 控制台功能 +- **Readline支持**: 完整的命令行体验 +- **历史记录**: 持久化的输入历史 +- **智能补全**: Tab键命令补全 +- **快捷键**: Emacs风格的编辑快捷键 + +## 可用命令 + +在聊天界面中,可以使用以下命令: + +- `help` - 显示帮助信息 +- `history` - 查看AI对话历史 +- `clear` - 清空对话历史 +- `readline-help` - 显示快捷键帮助 +- `stats` - 显示readline统计信息 +- `quit/exit/q` - 退出系统 + +## 快捷键 + +### 导航 +- `↑/↓` - 浏览历史记录 +- `Ctrl+A` - 跳转到行首 +- `Ctrl+E` - 跳转到行尾 + +### 编辑 +- `Ctrl+U` - 删除到行首 +- `Ctrl+K` - 删除到行尾 +- `Ctrl+W` - 删除单词 + +### 搜索 +- `Ctrl+R` - 反向搜索历史 +- `Ctrl+S` - 正向搜索历史 + +### 补全 +- `Tab` - 自动补全命令 + +## 配置说明 + +### 环境变量 +- `KIMI_API_KEY`: Moonshot API密钥(在Django设置中配置) +- `KIMI_API_URL`: Moonshot API基础URL(在Django设置中配置) + +### Django设置配置 +API凭证在 `emblemapi/settings.py` 中配置: +```python +KIMI_API_KEY = "your_api_key_here" +KIMI_API_URL = "https://api.moonshot.cn/v1" +``` + +### 历史文件 +- 默认位置: `~/.aichat_history` +- 最大记录数: 1000条 +- 自动保存: 退出时自动保存 + +## 开发说明 + +### 扩展工具 +在`AIChatService._define_tools()`中添加新工具: + +```python +def _define_tools(self): + return [ + { + "type": "function", + "function": { + "name": "your_tool_name", + "description": "工具描述", + "parameters": { + "type": "object", + "properties": {}, + "required": [] + } + } + } + ] +``` + +### 自定义系统提示词 +修改`_add_system_message()`方法中的`system_prompt`变量。 + +## 故障排除 + +### 常见问题 + +1. **API调用失败** + - 检查API密钥是否正确 + - 确认网络连接正常 + - 查看错误日志 + +2. **Readline功能异常** + - 确认终端支持readline + - 检查历史文件权限 + - 尝试重新创建历史文件 + +3. **导入错误** + - 确认Django环境已激活 + - 检查Python路径设置 + - 验证依赖包安装 + +### 调试模式 +使用`--verbosity=2`参数获取详细日志: + +```bash +python manage.py chat --verbosity=2 +``` + +## 更新日志 + +- **v1.0**: 初始版本,支持基础AI聊天和工具调用 +- **v1.1**: 添加readline支持和Django管理命令 +- **v1.2**: 重构为库模块,分离界面和核心功能 diff --git a/api/products/aichat.py b/api/products/aichat.py new file mode 100755 index 0000000..2bc8323 --- /dev/null +++ b/api/products/aichat.py @@ -0,0 +1,324 @@ +#!/usr/bin/env python3 +""" +AI Chat Module for 徵象防伪验证平台 +基于 Moonshot Kimi K2 API 的智能客服聊天系统 +""" + +import os +import json +import time +from typing import List, Dict, Any, Optional +from dataclasses import dataclass +from openai import OpenAI +from django.conf import settings + + +@dataclass +class ToolCall: + """工具调用数据结构""" + id: str + type: str + function: Dict[str, Any] + + +@dataclass +class ToolResult: + """工具执行结果""" + tool_call_id: str + content: str + + +class AIChatService: + """AI聊天服务主类""" + + def __init__(self, api_key: str = None, base_url: str = None): + """初始化AI聊天服务 + + Args: + api_key: Moonshot API密钥 + base_url: API基础URL + """ + self.api_key = api_key or getattr(settings, 'KIMI_API_KEY', None) + self.base_url = base_url or getattr(settings, 'KIMI_API_URL', None) + + if not self.api_key: + raise ValueError("KIMI_API_KEY is required") + + self.client = OpenAI( + api_key=self.api_key, + base_url=self.base_url + ) + + self.model = "kimi-k2-0711-preview" + self.conversation_history: List[Dict[str, str]] = [] + self.tools = self._define_tools() + + # 添加系统提示词 + self._add_system_message() + + def _define_tools(self) -> List[Dict[str, Any]]: + """定义可用工具""" + return [ + { + "type": "function", + "function": { + "name": "start_qr_scan", + "description": "启动二维码扫描,暂停对话等待扫描结果", + "parameters": { + "type": "object", + "properties": {}, + "required": [] + } + } + } + ] + + def _add_system_message(self): + """添加系统提示词""" + system_prompt = """你是一个专业的徵象防伪验证平台AI客服助手。 + +平台介绍: +徵象是由广州市诚投科技有限公司开发的AI驱动的智能防伪平台,通过多模态特征识别构建新一代防伪验证体系,实现从物理防伪到数字认证的全链路保护。系统采用ISO 12931国际防伪标准,已获取国家发明专利(证书编号:CN 115222000 B)。 + +服务范围: +1. 商品防伪验证 +2. 证件安全验证 +3. 工业品防伪 +4. 品牌数字化服务 + +服务原则: +1. 专业、友好、准确回答用户问题 +2. 优先使用官方信息回答 +3. 对于不确定的信息,明确告知用户 +4. 引导用户使用相关功能和服务 +5. 当用户需要验证产品真伪时,主动提供二维码扫描功能 + +可用工具: +- start_qr_scan: 启动二维码扫描功能,用于产品防伪验证 + +请根据用户问题提供准确、有用的回答。如果用户需要验证产品,请使用二维码扫描工具。""" + + self.conversation_history.append({ + "role": "system", + "content": system_prompt + }) + + def _execute_tool(self, tool_call: ToolCall) -> ToolResult: + """执行工具调用 + + Args: + tool_call: 工具调用信息 + + Returns: + 工具执行结果 + """ + # Debug logging + print(f"🔧 执行工具调用: {tool_call.function}") + + function_name = tool_call.function.name if hasattr(tool_call.function, 'name') else tool_call.function.get('name', '') + print(f"🔧 工具名称: {function_name}") + + if function_name == "start_qr_scan": + return self._execute_qr_scan(tool_call.id) + else: + return ToolResult( + tool_call_id=tool_call.id, + content=f"未知工具: {function_name}" + ) + + def _execute_qr_scan(self, tool_call_id: str) -> ToolResult: + """执行二维码扫描(模拟实现) + + Args: + tool_call_id: 工具调用ID + + Returns: + 扫描结果 + """ + print("\n🔍 启动二维码扫描...") + print("📱 请在客户端打开相机进行扫描...") + + # 模拟扫描过程 + for i in range(5, 0, -1): + print(f"⏳ 扫描中... {i}秒后完成") + time.sleep(1) + + print("✅ 扫描完成!") + print("🎯 验证结果:通过") + print("🏷️ 二维码标签:真品") + + # 返回验证结果 + result = { + "status": "pass", + "message": "二维码验证通过,产品为真品", + "verification_time": time.strftime("%Y-%m-%d %H:%M:%S") + } + + return ToolResult( + tool_call_id=tool_call_id, + content=json.dumps(result, ensure_ascii=False) + ) + + def chat(self, user_message: str) -> str: + """发送消息给AI并获取回复 + + Args: + user_message: 用户消息 + + Returns: + AI回复内容 + """ + # 添加用户消息到历史 + self.conversation_history.append({ + "role": "user", + "content": user_message + }) + + try: + # 调用Moonshot API + response = self.client.chat.completions.create( + model=self.model, + messages=self.conversation_history, + tools=self.tools, + tool_choice="auto", + temperature=0.7, + max_tokens=2000 + ) + + assistant_message = response.choices[0].message + + # 检查是否有工具调用 + if assistant_message.tool_calls: + # 执行工具调用 + tool_results = [] + for tool_call in assistant_message.tool_calls: + # 将function对象转换为字典格式 + function_dict = { + 'name': tool_call.function.name, + 'arguments': tool_call.function.arguments + } + + tool_call_obj = ToolCall( + id=tool_call.id, + type=tool_call.type, + function=function_dict + ) + result = self._execute_tool(tool_call_obj) + tool_results.append(result) + + # 将工具结果发送给AI获取最终回复 + tool_messages = [] + for result in tool_results: + tool_messages.append({ + "role": "tool", + "content": result.content, + "tool_call_id": result.tool_call_id + }) + + # 添加助手消息和工具结果到历史 + self.conversation_history.append({ + "role": "assistant", + "content": assistant_message.content or "", + "tool_calls": [ + { + "id": tc.id, + "type": tc.type, + "function": { + "name": tc.function.name, + "arguments": tc.function.arguments + } + } for tc in assistant_message.tool_calls + ] + }) + self.conversation_history.extend(tool_messages) + + # 获取最终回复 + final_response = self.client.chat.completions.create( + model=self.model, + messages=self.conversation_history, + temperature=0.7, + max_tokens=2000 + ) + + final_message = final_response.choices[0].message.content + + # 添加最终回复到历史 + self.conversation_history.append({ + "role": "assistant", + "content": final_message + }) + + return final_message + else: + # 没有工具调用,直接返回回复 + content = assistant_message.content or "抱歉,我没有获取到有效回复。" + + # 添加助手回复到历史 + self.conversation_history.append({ + "role": "assistant", + "content": content + }) + + return content + + except Exception as e: + error_msg = f"AI服务调用失败: {str(e)}" + print(f"❌ {error_msg}") + return error_msg + + def get_conversation_history(self) -> List[Dict[str, str]]: + """获取对话历史 + + Returns: + 对话历史列表 + """ + return self.conversation_history.copy() + + def clear_history(self): + """清空对话历史""" + self.conversation_history = [] + self._add_system_message() + + def print_history(self): + """打印对话历史""" + print("\n" + "="*50) + print("对话历史:") + print("="*50) + + for i, message in enumerate(self.conversation_history): + role = message["role"] + content = message["content"] + + if role == "system": + print(f"🤖 系统: {content[:100]}...") + elif role == "user": + print(f"👤 用户: {content}") + elif role == "assistant": + print(f"🤖 AI助手: {content}") + elif role == "tool": + print(f"🔧 工具结果: {content}") + + if i < len(self.conversation_history) - 1: + print("-" * 30) + + print("="*50) + + +if __name__ == "__main__": + """直接运行时的简单测试""" + print("🧪 AI聊天库测试模式") + print("=" * 30) + print("这是一个库模块,建议使用以下方式运行:") + print("1. Django管理命令: python manage.py chat") + print("2. 作为库导入: from products.aichat import AIChatService") + print("=" * 30) + + # 简单的功能测试 + try: + service = AIChatService() + print("✅ AIChatService 初始化成功") + print(f"📝 系统提示词长度: {len(service.conversation_history[0]['content'])} 字符") + print(f"🔧 可用工具数量: {len(service.tools)}") + except Exception as e: + print(f"❌ 初始化失败: {e}") + diff --git a/api/products/management/__init__.py b/api/products/management/__init__.py new file mode 100644 index 0000000..292c1d4 --- /dev/null +++ b/api/products/management/__init__.py @@ -0,0 +1 @@ +# Django management package diff --git a/api/products/management/commands/__init__.py b/api/products/management/commands/__init__.py new file mode 100644 index 0000000..82b545d --- /dev/null +++ b/api/products/management/commands/__init__.py @@ -0,0 +1 @@ +# Django management commands package diff --git a/api/products/management/commands/chat.py b/api/products/management/commands/chat.py new file mode 100644 index 0000000..af1e926 --- /dev/null +++ b/api/products/management/commands/chat.py @@ -0,0 +1,275 @@ +#!/usr/bin/env python3 +""" +Django management command for AI chat with readline support +Usage: python manage.py chat +""" + +import os +import readline +import atexit +from django.core.management.base import BaseCommand +from products.aichat import AIChatService + + +class ReadlineConfig: + """Readline配置类""" + + def __init__(self, history_file: str = None): + self.history_file = history_file or os.path.expanduser("~/.aichat_history") + self.commands = ['help', 'history', 'clear', 'readline-help', 'stats', 'quit', 'exit', 'q'] + self.setup_readline() + + def setup_readline(self): + """设置readline功能""" + # 设置历史文件 + try: + readline.read_history_file(self.history_file) + except FileNotFoundError: + pass + + # 设置历史文件大小 + readline.set_history_length(1000) + + # 注册退出时保存历史 + atexit.register(self.save_history) + + # 设置tab补全 + readline.parse_and_bind('tab: complete') + + # 设置其他有用的绑定 + readline.parse_and_bind('set editing-mode emacs') # 使用emacs编辑模式 + readline.parse_and_bind('set completion-ignore-case on') # 忽略大小写补全 + readline.parse_and_bind('set show-all-if-ambiguous on') # 显示所有可能的补全 + + # 设置自定义补全器 + readline.set_completer(self.completer) + + # 设置补全分隔符 + readline.set_completer_delims(' \t\n`!@#$%^&*()=+[{]}\\|;:\'",<>?') + + def completer(self, text, state): + """自定义补全器""" + options = [i for i in self.commands if i.startswith(text)] + if state < len(options): + return options[state] + return None + + def save_history(self): + """保存历史到文件""" + try: + readline.write_history_file(self.history_file) + except Exception as e: + print(f"⚠️ 保存历史记录失败: {e}") + + def add_to_history(self, line: str): + """添加行到历史""" + if line.strip(): + readline.add_history(line.strip()) + + def get_history_stats(self): + """获取历史统计信息""" + try: + history_length = readline.get_current_history_length() + return { + 'current_length': history_length, + 'max_length': readline.get_history_length(), + 'history_file': self.history_file + } + except Exception: + return {'error': '无法获取历史统计信息'} + + def clear_history(self): + """清空readline历史""" + try: + readline.clear_history() + print("🗑️ Readline历史已清空") + except Exception as e: + print(f"⚠️ 清空历史失败: {e}") + + +class Command(BaseCommand): + """AI聊天管理命令""" + + help = '启动AI聊天系统,支持readline功能' + + def add_arguments(self, parser): + """添加命令行参数""" + parser.add_argument( + '--history-file', + type=str, + help='指定历史文件路径 (默认: ~/.aichat_history)' + ) + + def handle(self, *args, **options): + """执行命令""" + self.stdout.write("🚀 徵象防伪验证平台 AI客服系统") + self.stdout.write("=" * 50) + self.stdout.write("输入 'help' 查看帮助信息") + self.stdout.write("输入 'history' 查看对话历史") + self.stdout.write("输入 'clear' 清空对话历史") + self.stdout.write("输入 'quit' 或 'exit' 退出系统") + self.stdout.write("=" * 50) + self.stdout.write("💡 提示: 使用 ↑↓ 键浏览历史,Tab 键补全,Ctrl+A/E 跳转行首/尾") + self.stdout.write("=" * 50) + + try: + # 初始化readline + readline_config = ReadlineConfig(options.get('history_file')) + + # 初始化AI服务 + ai_service = AIChatService() + self.stdout.write("✅ AI服务初始化成功!") + self.stdout.write("") + + # 启动聊天循环 + self._chat_loop(ai_service, readline_config) + + except Exception as e: + self.stderr.write(f"❌ 系统初始化失败: {str(e)}") + self.stderr.write("请检查API密钥配置") + + def _chat_loop(self, ai_service, readline_config): + """聊天主循环""" + while True: + try: + # 获取用户输入 + user_input = input("👤 您: ").strip() + + if not user_input: + continue + + # 添加到readline历史 + readline_config.add_to_history(user_input) + + # 处理特殊命令 + if user_input.lower() in ['quit', 'exit', 'q']: + self.stdout.write("👋 感谢使用,再见!") + break + elif user_input.lower() == 'help': + self._print_help() + continue + elif user_input.lower() == 'history': + ai_service.print_history() + continue + elif user_input.lower() == 'clear': + ai_service.clear_history() + self.stdout.write("🗑️ 对话历史已清空") + continue + elif user_input.lower() == 'readline-help': + self._print_readline_help() + continue + elif user_input.lower() == 'stats': + self._print_readline_stats(readline_config) + continue + + # 发送消息给AI + self.stdout.write("🤖 AI助手正在思考...") + response = ai_service.chat(user_input) + + self.stdout.write(f"🤖 AI助手: {response}") + self.stdout.write("") + + except KeyboardInterrupt: + self.stdout.write("\n\n👋 感谢使用,再见!") + break + except EOFError: + self.stdout.write("\n👋 再见!") + break + except Exception as e: + self.stderr.write(f"❌ 发生错误: {str(e)}") + self.stderr.write("请重试或输入 'quit' 退出") + + def _print_help(self): + """打印帮助信息""" + help_text = """ +📖 帮助信息 +========== + +基本命令: +- 直接输入文字与AI助手对话 +- help: 显示此帮助信息 +- history: 查看对话历史 +- clear: 清空对话历史 +- readline-help: 显示readline快捷键帮助 +- stats: 显示readline统计信息 +- quit/exit/q: 退出系统 + +功能特性: +- 智能客服问答 +- 二维码扫描验证(输入 '扫描' 或 '验证' 触发) +- 防伪平台信息咨询 +- 多轮对话支持 +- 持久化输入历史记录 + +使用提示: +1. 可以询问平台功能、防伪验证等问题 +2. 需要验证产品时,AI会主动提供扫描功能 +3. 支持中文对话,表达自然即可 +4. 使用 ↑↓ 键快速访问历史输入 +""" + self.stdout.write(help_text) + + def _print_readline_help(self): + """打印readline快捷键帮助""" + readline_help = """ +⌨️ Readline 快捷键帮助 +======================= + +导航快捷键: +↑/↓ - 浏览历史记录 +Ctrl+A - 跳转到行首 +Ctrl+E - 跳转到行尾 +Ctrl+B - 向后移动一个字符 +Ctrl+F - 向前移动一个字符 +Ctrl+P - 上一个历史记录 (同 ↑) +Ctrl+N - 下一个历史记录 (同 ↓) + +编辑快捷键: +Ctrl+U - 删除从光标到行首的内容 +Ctrl+K - 删除从光标到行尾的内容 +Ctrl+W - 删除光标前的一个单词 +Ctrl+D - 删除光标后的一个字符 +Ctrl+H - 删除光标前的一个字符 (同 Backspace) + +历史搜索: +Ctrl+R - 反向搜索历史记录 +Ctrl+S - 正向搜索历史记录 + +补全功能: +Tab - 自动补全 +双击Tab - 显示所有可能的补全 + +其他: +Ctrl+L - 清屏 +Ctrl+C - 中断当前操作 +Ctrl+D - 退出 (EOF) + +💡 提示: 这些快捷键基于 Emacs 编辑模式,与大多数终端应用保持一致 +""" + self.stdout.write(readline_help) + + def _print_readline_stats(self, readline_config): + """打印readline统计信息""" + stats = readline_config.get_history_stats() + + if 'error' in stats: + self.stderr.write(f"❌ {stats['error']}") + return + + self.stdout.write("\n📊 Readline 统计信息") + self.stdout.write("=" * 30) + self.stdout.write(f"当前历史记录数: {stats['current_length']}") + self.stdout.write(f"最大历史记录数: {stats['max_length']}") + self.stdout.write(f"历史文件路径: {stats['history_file']}") + + # 检查历史文件大小 + try: + if os.path.exists(stats['history_file']): + file_size = os.path.getsize(stats['history_file']) + self.stdout.write(f"历史文件大小: {file_size} 字节") + else: + self.stdout.write("历史文件: 尚未创建") + except Exception: + self.stdout.write("历史文件: 无法获取信息") + + self.stdout.write("=" * 30) diff --git a/doc/emblem-intro.md b/doc/emblem-intro.md new file mode 100644 index 0000000..6d0ff2b --- /dev/null +++ b/doc/emblem-intro.md @@ -0,0 +1,197 @@ +# 徵象AI防伪溯源平台介绍 + +## 一、品牌与技术定位 + +徵象是广州市诚投科技公司开发的AI驱动智能防伪溯源平台,核心依托"一物一码"技术,通过前沿科技解决包装印刷领域防伪溯源难题。其名称源自古代汉语"验证、分辨假象"之意,精准契合防伪技术本质,致力于为品牌提供可靠的防伪保障,维护市场秩序与品牌声誉。 + +诚投科技是一家处于迅速发展期的专业防伪技术企业,依托自有工厂实现自主研发,构建产研销一体化模式,在广州、深圳、佛山分别建立生产基地及营销体系。公司以"赋予商品唯一的数字化包装"为理念,以AI智能算法和多学科融合研究为核心,致力于打破传统防伪技术局限性,结合用户需求为全行业商品提供更安全、可靠的防伪保障。 + +### 诚投科技核心价值观 + +- **愿景**:成为国民级的防伪验证服务商,让世界充满真实 +- **使命**:使每件商品包装成为唯一,提升品牌的价值 +- **价值观**:诚心服务,投入创新 + +### 诚投科技服务类别 + +- **防伪验证服务**:自主研发的AI人工智能验证系统 +- **一物一码管理系统定制**:全功能的个性化定制 +- **防伪标签定制生产**:自有工厂,提供业务连续不间断交付 + +## 二、系统概述:徵象是什么? + +徵象是一套基于AI算法的智能二维码防伪验证系统,通过识别二维码在印刷过程中形成的微观差异,实现防伪验证与真伪判断。徵象是智能安全的商品数字化生态平台,依托"一物一码"技术,通过AI智能算法解决传统防伪痛点,为品牌构建安全可靠的数字化包装体系。 + +### 徵象提供 + +- **防伪验证**(唯一性) +- **便捷鉴别**(使用手机即可) +- **AI算法支撑**(图像级识别模型) + +## 三、核心技术特性 + +### (一)"无复制性原理"的二维码防复制技术 + +#### 1. 技术背景 + +传统刮刮银二维码存在诸多问题: + +- 消费者不可购前验证,需购买后刮开才能验证产品真伪 +- 品牌方部分功能受限,无法实现物流追踪、窜货稽查等,还需印刷多个二维码增加包装负担 +- 刮刮银耐久性差,快递运输易损坏影响品牌形象 +- 本质为标准数据编码,易被复制 + +#### 2. 解决方案 + +去除遮盖二维码的刮刮银,回归二维码开放、快捷的初始属性,重点解决开放二维码的防复制问题。 + +#### 3. 底层逻辑 + +产品包装、标签上的二维码由印刷设备制作,受印刷设备误差、环境、纸张等变量影响,每个二维码都有唯一、随机、微小且不受人为控制的图形特征,天生具备"无复制性原理"特性,就像没有两片完全相同的树叶,任何印刷设备都无法复制出完全一样的二维码。 + +徵象通过鉴别这些特征实现防复制功能,系统以"图像指纹"方式判断二维码是否为原件。 + +### (二)简单、便捷的二维码鉴别技术 + +#### 1. 鉴别工具 + +选择用户随身携带的手机作为鉴别工具,并将鉴别程序植入日活跃用户达10.8亿的微信,方便用户获取工具。 + +#### 2. 鉴别过程 + +用户扫码进入微信小程序,将二维码向屏幕中间靠拢,采集过程仅需1-2秒,随后等待系统反馈结果,过程简单快速,用户体验与微信扫码一致。通过用户行为分析,增加自动亮度感应、更新用户界面、调整图像预处理算法等,用户验证采集效率优化后,使用体验无限接近普通扫码。 + +#### 3. 兼容性 + +兼容IOS、安卓、鸿蒙等手机系统,以及广角、微距、1200万-1亿像素摄像头等硬件,任何主流智能手机型号均可使用,采集体验无限接近微信扫码。对手机操作系统、影像硬件、软件等多维度分类适配,采用动态配置检测方案,完全兼容的设备数量超1500个,几乎覆盖市场上流通的全部手机型号。 + +### (三)精准图像二维码智能鉴别模型 + +#### 1. 模型基础 + +历经3年开发,基于超千万训练数据量构建的人工智能精准图像算法模型,该模型已申请专利(专利号:ZL2021105XXXX.2 ,授权公告号:CN 115222000B),受法律保护。 + +#### 2. 核心能力 + +- **快速高质量采集**:支持扫码方向、垂直和水平角度自动纠正,让鉴别过程随意自然 +- **超高精度验证**:二维码特征验证最高精度达0.03mm,远高于各类型印刷设备生产误差范围,且随数码影像设备升级,精度优势将进一步扩大。通过真实用户数据收集、自主学习及人工测试数据辅助,对二维码真伪的综合验证准确率达99.94% +- **高效数据处理**:将存储的二维码特征图像代码化压缩,降低数据存储成本,提高网络数据传输效率,增强服务器数据安全性,兼顾性能与成本 +- **自主学习升级**:通过持续数据训练和真实业务场景数据获取,不断升级优化,以应对市场变化和科技发展,实现多角度、模糊、轻污损情况下的稳定识别 + +## 四、徵象AI防伪对话功能(行业首创) + +### 1. 功能简介 + +突破传统防伪场景中消费者扫码仅能获得真假固定答案的模式,植入DeepSeek并经本地化二次开发,实现系统与用户的多轮对话交互,变身"无所不能的AI客服"。通过接入DeepSeek AI技术,实现二维码防伪验证后,支持用户与AI客服多轮自然语言对话,获得丰富产品信息。 + +### 2. 核心价值 + +用户扫码验证真伪后,可通过与AI客服聊天获取产品信息、使用建议、优惠促销等20多个维度的问题解答。 + +### 3. 应用案例 + +- **智能推荐搭配产品**:用户查询美妆产品后,AI推荐更适合肤质的配套商品。美妆产品用户验证后询问产品好坏,AI客服回答卖点与功效,同时询问需求并推荐适配配套产品 +- **识别查询行为并个性化营销**:用户多次查询后,AI主动推荐优惠组合并邀请注册会员。识别到用户1个月内查询5次同款产品真伪,主动推荐优惠套装组合,邀请加入会员享积分福利 +- **处理假货场景**:AI客服安抚用户、提供维权报告、引导举报并推荐官方渠道。二维码未通过验证时,安慰用户,建议下载"防伪验证报告"维权,邀请参与举报假货得奖金活动,并推荐官方授权渠道购买正品 + +## 五、与传统防伪技术的对比 + +| 对比维度 | 传统刮刮银二维码 | 徵象AI二维码 | +|---------|----------------|-------------| +| **验证方式** | 必须刮开才能验证 | 开放扫码,随时验证 | +| **功能扩展** | 受限 | 支持物流追踪等全功能 | +| **耐久性** | 易磨损 | 持久耐用 | +| **防复制性** | 可被复制 | 物理不可复制 | + +## 六、适配与集成方案 + +- **支持独立部署或作为插件接入其他一物一码系统**:集成"一物一码"防伪溯源平台几乎全部主流功能,可按需提供服务;对于使用其他友商一物一码系统的用户,可作为防伪验证功能插件,不接触核心业务数据即可轻松兼容,提升防伪性能 +- **多种二维码载体形式**:二维码载体支持不干胶标签、卡片、吊牌等形式交付,支持设计、材质和附加防伪技术全定制 +- **定位烫印膜解决方案**:还可供应二维码定位烫印膜,实现二维码直接烫印在包装上,满足去标签化及防伪一体化包装需求,提供二维码定位热转印膜,可将二维码直接烫印在包装上,满足去标签化需求,实现一体化防伪包装 + +## 七、应用价值与优势 + +### (一)核心应用场景 + +- **品牌保护**:AI智能专利防伪,打击假冒伪劣,维护品牌利益 +- **渠道管理**:完善经销商管理,实现窜货乱价监控 +- **功能集成**:商品数字平台功能全集成,根据用户需求提供服务 +- **销量提升**:依托权威第三方背书,拓展线上销售渠道,进行全方位品牌宣传 +- **用户运营**:构建会员积分体系,通过线上营销引流,增强用户粘性 +- **兼容适配**:对于已使用其他一物一码系统的用户,可作为防伪验证插件轻松兼容,不涉及核心业务数据,如同在家门口增加一把锁 + +### (二)目标价值与商业意义 + +徵象不仅是一套安全防伪技术,更是一个数据入口和营销辅助工具: + +- **打击假货,提升用户信任** + - 保障产品真实性:让消费者可便捷查验产品真伪及相关信息,如食品行业的生产信息、质量检测报告,电子产品的序列号、保修期等 + - 保护品牌声誉:减少假冒伪劣产品对品牌形象的损害,降低消费者投诉率(据统计,使用"一物一码"技术的企业消费者投诉率降低20%) + - 维护市场秩序:助力品牌规范渠道管理,打击窜货乱价等行为 +- **降低重复购买风险** +- **支持销售数据回流与营销触达** +- **预计可带动满意度、销量、复购率提升10%~30%**:市场价值预测:相较于传统防伪,徵象独特功能预期可使消费者满意度、产品销量、复购率等关键营销数据提升10%-30% + +## 八、增值服务 + +- **QBS全程质量保障体系**:充分发挥国家质量基础设施作用,以信用、标准、检测、溯源保险(保障)为支撑,运用云计算、大数据、人工智能和区块链等技术,为产品全生命周期提供质量品牌保障,是ISO体系的丰富和发展 +- **澳门质量品牌国际认证联盟支持**:联盟立足粤港澳大湾区,面向RCEP区域,服务"一带一路",以"一个标准、一次检验、一次认证、多国认可"为使命,助力企业参与全球质量治理 +- **线上销售渠道拓展**:质易购平台是国内首家全面导入QBS体系的电商平台,汇聚质优价优品牌产品,为企业拓展销售渠道,推动高标准自主创新品牌发展 +- **全方位品牌宣传支持** + - 入驻电商选品平台,如粤港澳质量品牌选品中心及其他线上平台 + - 提供主流媒体、全国主要城市公交站广告牌等广告宣传渠道 + - 提供各类品牌展参展机会,增强企业行业影响力 + - 支持国际市场拓展,帮助企业开拓海外市场空间 + +## 九、客户案例 + +徵象已服务多个行业知名客户及项目,包括: + +### 国内行业客户 + +- **烟草行业**:中国烟草(黄金葉、黃鶴樓1916、雲煙、泰山、重庆中烟等) +- **酒类行业**:贵州茅台集团 +- **电子行业**:AMD、Microsoft、HUAWEI +- **快消与美妆行业**:膜法世家、巨子生物、金燕耳 +- **其他行业**:adidas、Helen Keller、GOODYEAR、德高、志高空调等 + +### 国际项目 + +- 尼日利亚联邦共和国选民证 +- 毛里塔尼亚伊斯兰共和国国库支票 +- 埃塞俄比亚护照模 +- 科威特国工业公共管理局证书 +- 缅甸联邦共和国护照热塑膜等 + +### 政府项目 + +- 广东省农业农村厅"一码追溯"项目,实现食用农产品全链条信息追溯,守护"舌尖上的安全" + +## 十、联系方式 + +- **电话**:+862031063634 +- **邮箱**:info@themblem.com + +### 办公地址 + +- **营销研发中心(广州)**:广东省广州市番禺区番禺大道北天安总部中心30-305 +- **国际贸易部(深圳)**:广东省深圳市罗湖区人民南路天安国际大厦B-1108-1109 +- **生产基地(佛山)**:广东省佛山市顺德区杏坛镇二环路智富园工业城33-503 + +### 官方账号 + +抖音、微信、小红书等平台均有官方账号,可关注获取更多信息: + +- **抖音账号**:智能防伪码-徵象 +- **微信视频账号**:徵象AI防伪码 +- **小红书账号**:AI防伪码徵象 + +## 十一、总结 + +徵象通过"无复制性原理"的二维码防复制技术、简单便捷的鉴别技术和精准图像智能鉴别模型,构建了可靠的防伪溯源体系。并推出对话交互型AI防伪功能,将二维码从"验证工具"升级为"智能接口",将防伪系统从"安全卫士"演进为"数据入口"。 + +徵象愿与各方携手,共同构建有温度、有智慧的防伪新生态。 + +### 技术价值主张 + +> "将二维码从验证工具升级为智能接口,使防伪系统从安全卫士演进为数据入口,构建有温度、有智慧的防伪新生态。" \ No newline at end of file