KR102477073B1 - 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리 - Google Patents

음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리 Download PDF

Info

Publication number
KR102477073B1
KR102477073B1 KR1020227001311A KR20227001311A KR102477073B1 KR 102477073 B1 KR102477073 B1 KR 102477073B1 KR 1020227001311 A KR1020227001311 A KR 1020227001311A KR 20227001311 A KR20227001311 A KR 20227001311A KR 102477073 B1 KR102477073 B1 KR 102477073B1
Authority
KR
South Korea
Prior art keywords
data processing
processing system
responses
computing device
query
Prior art date
Application number
KR1020227001311A
Other languages
English (en)
Other versions
KR20220010070A (ko
Inventor
안술 코타리
가우라브 바야
타런 제인
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220010070A publication Critical patent/KR20220010070A/ko
Application granted granted Critical
Publication of KR102477073B1 publication Critical patent/KR102477073B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)

Abstract

그래픽 사용자 인터페이스의 렌더링 관리가 제공된다. 시스템은 입력 오디오 신호를 포함하는 데이터 패킷들을 수신한다. 시스템은 애플리케이션 식별자 및 쿼리를 결정한다. 시스템은 쿼리를 애플리케이션에 제공하여, 상기 애플리케이션으로 하여금 서드 파티 서버로 전송하기 위한 제2 쿼리를 생성하게 하고, 쿼리에 대한 응답을 식별한다. 시스템은 응답을 인터셉트하고, 응답들에 기초하여 키워드를 생성한다. 시스템은 키워드를 사용하여 디지털 컴포넌트를 선택하고, 중복 제거 프로세스를 실행하며, 디지털 컴포넌트를 응답들에 추가할지 결정한다. 시스템은 애플리케이션에 의해 생성된 복수의 응답들을 디지털 컴포넌트와 통합하는 그래픽 사용자 인터페이스 템플릿을 사용하여 디스플레이 출력을 구성하고, 상기 디스플레이 출력을 렌더링을 위해 상기 컴퓨팅 디바이스에 제공한다.

Description

음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리{GRAPHICAL USER INTERFACE RENDERING MANAGEMENT BY VOICE-DRIVEN COMPUTING INFRASTRUCTURE}
관련 출원에 대한 상호 참조
본 출원은 2017년 12월 8일자로 출원된 미국 특허 출원 제15/836,746호에 대해 우선권을 주장하며, 그 전체가 본 명세서에 참조로서 통합된다.
컴퓨팅 디바이스는 컴퓨터 네트워크를 통해 전송된 데이터를 수신할 수 있다. 디바이스는 데이터를 제시할 수 있다. 과도한 데이터 전송으로 인해, 다수의 소스로부터의 데이터를 효율적으로 제공하는 것은 어려울 수 있다.
본 개시는 일반적으로 음성 구동 컴퓨팅 인프라에 의한 그래픽 사용자 인터페이스 렌더링 관리에 관한 것이다. 다수의, 개별 소스로부터 응답 또는 출력이 수신될 수 있다. 각 소스는 포맷으로 출력을 제공할 수 있다. 서로 다른 소스로부터의 출력을 다수 렌더링하는 것은 비효율적이거나 프로세서 집약적일 수 있다.
적어도 하나의 양태는 그래픽 사용자 인터페이스의 렌더링을 관리하기 위한 시스템에 관한 것이다. 시스템은 하나 이상의 프로세서들 및 메모리를 포함하는 데이터 프로세싱 시스템을 포함할 수 있다. 데이터 프로세싱 시스템은 자연어 프로세서 컴포넌트, 인터페이스, 출력 병합 컴포넌트 및 콘텐츠 선택 컴포넌트를 실행할 수 있다. 데이터 프로세싱 시스템은 인터페이스를 통해 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신할 수 있다. 데이터 프로세싱 시스템은 입력 오디오 신호로부터 애플리케이션 식별자 및 상기 애플리케이션 식별자에 대응하는 애플리케이션으로 입력될 쿼리를 결정할 수 있다. 데이터 프로세싱 시스템은 쿼리를 애플리케이션에 제공하여, 상기 애플리케이션으로 하여금 서드 파티 서버로 전송하기 위한 제2 쿼리를 생성하게 하고, 컴퓨팅 디바이스를 통해 디스플레이하기 위한 쿼리에 대한 복수의 응답들을 식별한다. 데이터 프로세싱 시스템은 상기 컴퓨팅 디바이스 상에 디스플레이하기 전에, 상기 애플리케이션으로부터, 서드 파티 서버로 전송된 상기 제2 쿼리에 응답하여 상기 애플리케이션에 의해 식별된 상기 복수의 응답들을 획득할 수 있다. 데이터 프로세싱 시스템은 상기 복수의 응답들에 기초하여 키워드를 생성하기 위해 상기 복수의 응답을 파싱할 수 있다. 데이터 프로세싱 시스템은 상기 키워드의 생성에 응답하여, 상기 애플리케이션으로부터 획득된 상기 복수의 응답들에 기초하여 생성된 상기 키워드로 실시간 콘텐츠 선택 프로세스를 실행할 수 있다. 데이터 프로세싱 시스템은 상기 실시간 콘텐츠 선택 프로세스에 기초하여, 콘텐츠 제공자 디바이스에 의해 제공된 디지털 컴포넌트를 식별할 수 있다. 데이터 프로세싱 시스템은 상기 디지털 컴포넌트 및 상기 애플리케이션에 의해 생성된 상기 복수의 응답들로 중복 제거 프로세스를 실행할 수 있다. 데이터 프로세싱 시스템은 상기 디지털 컴포넌트로 실행된 상기 중복 제거 프로세스 및 상기 애플리케이션에 의해 생성된 상기 복수의 응답들에 응답하여, 상기 디지털 컴포넌트를 상기 복수의 응답들에 추가하도록 결정할 수 있다. 데이터 프로세싱 시스템은 상기 애플리케이션에 대해, 상기 복수의 응답들을 렌더링하기 위한 폰트, 색상 및 레이아웃을 정의하는 그래픽 사용자 인터페이스 템플릿을 검색할 수 있다. 데이터 프로세싱 시스템은 상기 애플리케이션에 의해 생성된 상기 복수의 응답들을 상기 실시간 콘텐츠 선택 프로세스에 기초하여 식별된 디지털 컴포넌트와 통합하는 상기 그래픽 사용자 인터페이스 템플릿을 사용하여 디스플레이 출력을 구성할 수 있다. 데이터 프로세싱 시스템은 상기 컴퓨팅 디바이스로 하여금 상기 컴퓨팅 디바이스에 통신가능하게 연결된 디스플레이 디바이스를 통해 디스플레이하기 위한 상기 디스플레이 출력을 렌더링하게 하기 위해 상기 디스플레이 출력을 상기 컴퓨팅 디바이스에 제공할 수 있다.
적어도 하나의 양태는 그래픽 사용자 인터페이스의 렌더링을 관리하는 방법에 관한 것이다. 방법은 하나 이상의 프로세서들 및 메모리를 포함하는 데이터 프로세싱 시스템에 의해 수행될 수 있다. 상기 방법은 인터페이스를 통해 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 데이터 프로세싱 시스템에 의해, 입력 오디오 신호로부터 애플리케이션 식별자 및 상기 애플리케이션 식별자에 대응하는 애플리케이션으로 입력될 쿼리를 결정하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 쿼리를 애플리케이션에 제공하는 데이터 프로세싱 시스템을 포함하며, 상기 애플리케이션으로 하여금 서드 파티 서버로 전송하기 위한 제2 쿼리를 생성하게 하고, 컴퓨팅 디바이스를 통해 디스플레이하기 위한 쿼리에 대한 복수의 응답들을 식별한다. 상기 방법은 상기 컴퓨팅 디바이스 상에 디스플레이하기 전에, 상기 애플리케이션으로부터, 상기 서드 파티 서버로 전송된 상기 제2 쿼리에 응답하여 상기 애플리케이션에 의해 식별된 상기 복수의 응답들을 획득하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 복수의 응답들에 기초하여 키워드를 생성하기 위해 상기 복수의 응답을 파싱하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 키워드의 생성에 응답하여, 상기 애플리케이션으로부터 인터셉트된 상기 복수의 응답들에 기초하여 생성된 상기 키워드로 실시간 콘텐츠 선택 프로세스를 실행하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 실시간 콘텐츠 선택 프로세스에 기초하여, 콘텐츠 제공자 디바이스에 의해 제공된 디지털 컴포넌트를 식별하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 디지털 컴포넌트 및 상기 애플리케이션에 의해 생성된 상기 복수의 응답들로 중복 제거 프로세스를 실행하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 디지털 컴포넌트로 실행된 상기 중복 제거 프로세스 및 상기 애플리케이션에 의해 생성된 상기 복수의 응답들에 응답하여, 상기 디지털 컴포넌트를 상기 복수의 응답들에 추가하도록 결정하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 애플리케이션에 대해, 상기 복수의 응답들을 렌더링하기 위한 폰트, 색상 및 레이아웃을 정의하는 그래픽 사용자 인터페이스 템플릿을 검색하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 애플리케이션에 의해 생성된 상기 복수의 응답들을 상기 실시간 콘텐츠 선택 프로세스에 기초하여 식별된 디지털 컴포넌트와 통합하는 상기 그래픽 사용자 인터페이스 템플릿을 사용하여 디스플레이 출력을 구성하는 데이터 프로세싱 시스템을 포함할 수 있다. 상기 방법은 상기 컴퓨팅 디바이스로 하여금 상기 컴퓨팅 디바이스에 통신가능하게 연결된 디스플레이 디바이스를 통해 디스플레이하기 위한 상기 디스플레이 출력을 렌더링하게 하기 위해 상기 디스플레이 출력을 상기 컴퓨팅 디바이스에 제공하는 데이터 프로세싱 시스템을 포함할 수 있다.
적어도 하나의 양태는 디지털 어시스턴트 디바이스에 관한 것이다. 디지털 어시스턴트 디바이스는 디스플레이 디바이스, 그래픽 드라이버, 센서 및 프리-프로세서 컴포넌트를 포함할 수 있다. 센서는 입력 오디오 신호를 검출할 수 있다. 프리-프로세서 컴포넌트는 디스플레이 디바이스, 그래픽 드라이버 및 센서에 연결될 수 있다. 프리-프로세서 컴포넌트는 입력 오디오 신호를 필터링하여 필터링된 입력 오디오 신호를 생성할 수 있다. 프리-프로세서 컴포넌트는 필터링된 입력 오디오 신호를 데이터 패킷들로 변환할 수 있다. 프리-프로세서 컴포넌트는 데이터 패킷들을 데이터 프로세싱 시스템으로 전송할 수 있다. 데이터 프로세싱 시스템은 자연어 프로세서 컴포넌트, 인터페이스, 출력 병합 컴포넌트 및 콘텐츠 선택 컴포넌트를 실행하는 하나 이상의 프로세서들 및 메모리를 포함할 수 있다. 데이터 프로세싱 시스템은 인터페이스를 통해 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신할 수 있다. 데이터 프로세싱 시스템은 입력 오디오 신호로부터 애플리케이션 식별자 및 상기 애플리케이션 식별자에 대응하는 애플리케이션으로 입력될 쿼리를 결정할 수 있다. 데이터 프로세싱 시스템은 쿼리를 애플리케이션에 제공하여, 상기 애플리케이션으로 하여금 서드 파티 서버로 전송하기 위한 제2 쿼리를 생성하게 하고, 컴퓨팅 디바이스를 통해 디스플레이하기 위한 쿼리에 대한 복수의 응답들을 식별한다. 데이터 프로세싱 시스템은 상기 컴퓨팅 디바이스 상에 디스플레이하기 전에, 상기 애플리케이션으로부터, 서드 파티 서버로 전송된 상기 제2 쿼리에 응답하여 상기 애플리케이션에 의해 식별된 상기 복수의 응답들을 획득할 수 있다. 데이터 프로세싱 시스템은 상기 복수의 응답들에 기초하여 키워드를 생성하기 위해 상기 복수의 응답을 파싱할 수 있다. 데이터 프로세싱 시스템은 상기 키워드의 생성에 응답하여, 상기 애플리케이션으로부터 획득된 상기 복수의 응답들에 기초하여 생성된 상기 키워드로 실시간 콘텐츠 선택 프로세스를 실행할 수 있다. 데이터 프로세싱 시스템은 상기 실시간 콘텐츠 선택 프로세스에 기초하여, 콘텐츠 제공자 디바이스에 의해 제공된 디지털 컴포넌트를 식별할 수 있다. 데이터 프로세싱 시스템은 상기 디지털 컴포넌트 및 상기 애플리케이션에 의해 생성된 상기 복수의 응답들로 중복 제거 프로세스를 실행할 수 있다. 데이터 프로세싱 시스템은 상기 디지털 컴포넌트로 실행된 상기 중복 제거 프로세스 및 상기 애플리케이션에 의해 생성된 상기 복수의 응답들에 응답하여, 상기 디지털 컴포넌트를 상기 복수의 응답들에 추가하도록 결정할 수 있다. 데이터 프로세싱 시스템은 상기 애플리케이션에 대해, 상기 복수의 응답들을 렌더링하기 위한 폰트, 색상 및 레이아웃을 정의하는 그래픽 사용자 인터페이스 템플릿을 검색할 수 있다. 데이터 프로세싱 시스템은 상기 애플리케이션에 의해 생성된 상기 복수의 응답들을 상기 실시간 콘텐츠 선택 프로세스에 기초하여 식별된 디지털 컴포넌트와 통합하는 상기 그래픽 사용자 인터페이스 템플릿을 사용하여 디스플레이 출력을 구성할 수 있다. 데이터 프로세싱 시스템은 상기 디지털 어시스턴트 디바이스로 하여금 상기 디지털 어시스턴트 디바이스에 통신가능하게 연결된 디스플레이 디바이스를 통해 디스플레이하기 위한 상기 디스플레이 출력을 렌더링하게 하기 위해 상기 디스플레이 출력을 상기 디지털 어시스턴트 디바이스에 제공할 수 있다. 상기 디지털 어시스턴트 디바이스의 상기 그래픽 드라이버는 상기 디스플레이 디바이스로 하여금 상기 디스플레이 출력에 대응하는 시각적 표시를 제시하게 하기 위해 상기 디스플레이 출력을 렌더링할 수 있다.
이들 및 다른 양태들 및 구현예들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태들 및 구현예들의 예시적 실시예를 포함하고, 청구된 양태들 및 구현예들의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태들 및 구현예들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다. 명확성을 위해 모든 도면에서 모든 컴포넌트가 라벨링된 것은 아니다. 도면에서:
도 1은 그래픽 사용자 인터페이스의 렌더링을 관리하기 위한 시스템을 도시한다.
도 2는 그래픽 사용자 인터페이스의 렌더링을 관리하기 위한 시스템의 동작을 도시한다.
도 3은 그래픽 사용자 인터페이스의 렌더링을 관리하기 위해 시스템에 의해 제공되는 그래픽 사용자 인터페이스를 도시한다.
도 4는 그래픽 사용자 인터페이스의 렌더링을 관리하는 방법을 도시한다.
도 5는 본 명세서에 기술되고 도시된 시스템 및 방법의 구성요소를 구현하기 위해 사용될 수 있는 컴퓨터 시스템을 위한 일반적인 아키텍처를 도시하는 블록도이다.
아래에 설명되는 것은 컴퓨터 네트워크를 통해 패킷화된 액션들을 라우팅하는 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현예들에 대한 보다 상세한 설명이다. 위에서 소개되고 아래에서 더 상세하게 논의되는 다양한 개념은 수많은 방식으로 구현될 수 있다.
본 개시는 일반적으로 그래픽 사용자 인터페이스의 렌더링을 관리하는 것에 관한 것이다. 다수의, 개별 소스로부터 응답 또는 출력이 수신될 수 있다. 각 소스는 포맷으로 출력을 제공할 수 있다. 서로 다른 소스로부터의 출력을 다수 렌더링하는 것은 비효율적이거나 프로세서 집약적일 수 있다.
본 솔루션의 시스템 및 방법은 일반적으로 디지털 어시스턴트를 서드 파티 사용자 경험과 통합하는 것에 관한 것이다. 컴퓨팅 시스템은 다수의 소스로부터의 디지털 컴포넌트들을 제공할 수 있다. 그러나, 단일 인터페이스를 통해 별개의 소스로부터의 디지털 컴포넌트들을 효율적으로 제공하는 것은 어려울 수 있다. 본 솔루션의 시스템 및 방법은 디지털 어시스턴트를 서드 파티 사용자 경험과 통합하는 것에 관한 것이다. 예를 들어, 본 개시는 챗봇의 인터페이스와 일치하는 사용자 경험 및 인터페이스를 제공하기 위해 디지털 어시스턴트가 챗봇 애플리케이션과 통합할 수 있게 하여, 디지털 어시스턴트에 의해 구동되는 시각적 디스플레이 내에서 서드 파티의 모양과 느낌을 제공할 수 있다. 챗봇 애플리케이션은 오디오 출력 또는 디스플레이 텍스트를 사용하여 대화를 시뮬레이션하는 컴퓨터 프로그램을 참조할 수 있다. 일부 경우에, 디지털 어시스턴트는 서드 파티 콘텐츠와 함께 제시하기 위한 추가 소스로부터 콘텐츠를 추가할 수 있다. 예를 들어, 사용자는 "챗봇, 근처에 음식점 제안해줘"와 같은 음성 쿼리를 제출할 수 있으며, 디지털 어시스턴트는 챗봇 및 통합된 스폰서된 디지털 컴포넌트로부터의 유기적 콘텐츠로 응답할 수 있다.
도 1은 그래픽 사용자 인터페이스의 렌더링을 관리하기 위한 예시적 시스템(100)을 도시한다. 시스템(100)은 콘텐츠 선택 인프라를 포함할 수 있다. 시스템(100)은 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해, 콘텐츠 제공자 컴퓨팅 디바이스(106), 챗봇 제공자 디바이스(108) 또는 클라이언트 컴퓨팅 디바이스(104)와 통신할 수 있다. 네트워크(105)는 인터넷, 로컬, 와이드, 메트로 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크 및 음성 또는 데이터 모바일폰 통신 네트워크와 같은 다른 컴퓨터 네트워크들과 같은 컴퓨터 네트워크를 포함할 수 있다. 네트워크(105)는 랩톱, 데스크톱, 태블릿, 디지털 어시스턴트, 퍼스널 디지털 어시스턴트, 스마트워치, 웨어러블 디바이스, 스마트폰, 휴대용 컴퓨터 또는 스피커와 같은 적어도 하나의 컴퓨팅 디바이스(104) 상에 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹페이지, 웹사이트, 도메인 이름 또는 URL과 같은 정보 리소스들에 액세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해, 컴퓨팅 디바이스(104)의 사용자는 챗봇 제공자(108) 또는 콘텐츠 제공자 컴퓨팅 디바이스(106)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다. 컴퓨팅 디바이스(104)는 디스플레이를 포함하거나 포함하지 않을 수 있으며; 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은 제한된 유형의 사용자 인터페이스를 포함할 수 있다. 일부 경우에, 컴퓨팅 디바이스(104)의 주요 사용자 인터페이스는 마이크로폰 및 스피커일 수 있다.
네트워크(105)는 디스플레이 네트워크, 예를 들어, 콘텐츠 배치 또는 검색 엔진 결과 시스템과 연관되거나 디지털 컴포넌트 배치 캠페인의 일부로서 서드 파티 디지털 컴포넌트에 포함시키기에 적합한 인터넷 상의 사용가능한 정보 리소스들의 서브셋을 포함하거나 구성할 수 있다. 네트워크(105)는 클라이언트 컴퓨팅 디바이스(104)에 의해 제시, 출력, 렌더링 또는 디스플레이될 수 있는 웹페이지, 웹사이트, 도메인 이름, 또는 URL과 같은 정보 리소스들에 액세스하기 위해 데이터 프로세싱 시스템(102)에 의해 사용될 수 있다. 예를 들어, 네트워크(105)를 통해, 컴퓨팅 디바이스(104)의 사용자는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 챗봇 제공자 컴퓨팅 디바이스(108)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다.
네트워크(105)는 임의의 유형 또는 형태의 네트워크일 수 있으며, 포인트-투-포인트 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 근거리 네트워크, 전화통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 무선 네트워크 및 유선 네트워크 중 임의의 것을 포함할 수 있다. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 스타 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 어드밴스드 모바일폰 프로토콜("AMPS"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA"), 글로벌 이동 통신 시스템("GSM"), 일반 패킷 무선 서비스("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 포함하는 모바일 디바이스들 간에 통신하는데 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터는 상이한 프로토콜을 통해 전송될 수 있거나, 동일한 유형의 데이터가 상이한 프로토콜들을 통해 전송될 수 있다.
시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해 통신하기 위한 프로세서를 가지는 컴퓨팅 디바이스 예를 들어 컴퓨팅 디바이스(104), 콘텐츠 제공자 디바이스(106)(콘텐츠 제공자 컴퓨팅 디바이스(106)) 또는 챗봇 제공자 디바이스(108)(또는 챗봇 제공자(108))와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 센터에 위치된 복수의 계산 리소스 또는 서버를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 다수의 논리적으로 그룹화된 서버를 포함할 수 있고, 분산 컴퓨팅 기법을 지원한다. 논리적 서버들의 그룹은 데이터 센터, 서버 팜 또는 머신 팜으로 지칭될 수 있다. 서버는 지리적으로 분산될 수 있다. 데이터 센터 또는 머신 팜은 단일 엔터티로 관리되거나, 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 다른 기종일 수 있다 - 하나 이상의 서버 또는 머신이 하나 이상의 운영 체제 플랫폼 유형에 따라 동작할 수 있다.
머신 팜의 서버는 연관된 저장 시스템과 함께 고밀도 랙 시스템에 저장되고 엔터프라이즈 데이터 센터에 위치될 수 있다. 예를 들어, 이러한 방식으로 서버를 통합하면 지역화된 고성능 네트워크에 서버 및 고성능 저장 시스템을 위치시킴으로써 시스템 관리성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하여 모든 또는 일부 데이터 프로세싱 시스템(102) 컴포넌트들을 중앙집중화하고 이를 고급 시스템 관리 툴과 결합하면 서버 리소스들을 보다 효율적으로 사용할 수 있게 하여, 전력 및 프로세싱 요구사항을 절약하고 대역폭 사용을 감소시킨다.
컴퓨팅 디바이스(104)는 적어도 하나의 디스플레이(132), 적어도 하나의 센서(134), 적어도 하나의 트랜스듀서(136), 적어도 하나의 오디오 드라이버(138) 또는 적어도 하나의 프리-프로세서(140)를 포함하거나 이와 인터페이스 또는 통신할 수 있다. 디스플레이(132)는 발광 다이오드, 유기 발광 다이오드, 액정 디스플레이, 레이저 또는 디스플레이(535)와 같은 시각적 표시 또는 광학 출력을 제공하도록 구성된 하나 이상의 하드웨어 또는 소프트웨어 컴포넌트를 포함할 수 있다. 센서(134)는 예를 들어 카메라, 주변 광 센서, 근접 센서, 온도 센서, 가속도계, 자이로스코프, 모션 검출기, GPS 센서, 위치 센서, 마이크로폰, 비디오, 이미지 검출 또는 터치 센서를 포함할 수 있다. 트랜스듀서(136)는 스피커 또는 마이크로폰을 포함하거나 그 일부일 수 있다. 오디오 드라이버(138)는 하드웨어 트랜스듀서(136)에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버는 오디오 파일 또는 데이터 프로세싱 시스템(102)에 의해 제공된 다른 명령어들을 실행하여 트랜스듀서(136)를 제어하여 대응하는 음향 파장 또는 음파를 생성할 수 있다. 프리-프로세서(140)는 하나 이상의 프로세서들(예를 들어, 프로세서(510)), 논리 어레이 또는 메모리를 포함할 수 있다. 프리-프로세서(140)는 키워드를 검출하고 키워드에 기초한 액션을 수행할 수 있다. 프리-프로세서(140)는 추가 프로세싱을 위해 용어를 데이터 프로세싱 시스템(102)에 전송하기 전에 하나 이상의 용어들을 필터링하거나 용어를 수정할 수 있다. 프리-프로세서(140)는 마이크로폰에 의해 검출된 아날로그 오디오 신호를 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷을 네트워크(105)를 통해 데이터 프로세싱 시스템(102)에 전송할 수 있다. 일부 경우에, 프리-프로세서(140)는 그러한 전송을 수행하기 위한 명령어를 검출하는 것에 응답하여 입력 오디오 신호의 일부 또는 전부를 운반하는 데이터 패킷을 전송할 수 있다. 명령어는 예를 들어, 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 프로세싱 시스템(102)에 전송하기 위한 트리거 키워드 또는 다른 키워드 또는 승인을 포함할 수 있다.
프리-프로세서(140)는 입력 오디오 신호에 대해 사전-필터링 또는 프리-프로세싱을 수행하여 특정 주파수의 오디오를 제거할 수 있다. 사전-필터링은 저역 통과 필터, 고역 통과 필터 또는 대역 통과 필터와 같은 필터들을 포함할 수 있다. 주파수 영역에서 필터들이 적용될 수 있다. 필터들은 디지털 신호 프로세싱 기법을 사용하여 적용될 수 있다. 필터들은 사람의 음성 또는 사람의 말에 대응하는 주파수를 유지하면서 일반적인 사람의 말의 주파수를 벗어나는 주파수를 제거하도록 구성될 수 있다. 예를 들어, 대역 통과 필터는 제1 임계치(예를 들어, 70Hz, 75Hz, 80Hz, 85Hz, 90Hz, 95Hz, 100Hz 또는 105Hz) 미만 및 제2 임계치( 예를 들어, 200Hz, 205Hz, 210Hz, 225Hz, 235Hz, 245Hz 또는 255Hz) 초과의 주파수들을 제거하도록 구성될 수 있다. 대역 통과 필터를 적용하면 다운 스트림 프로세싱에서 컴퓨팅 리소스 사용을 줄일 수 있다. 일부 경우에, 컴퓨팅 디바이스(104)상의 프리-프로세서(140)는 입력 오디오 신호를 데이터 프로세싱 시스템(102)으로 전송하기 전에 대역 통과 필터를 적용하여, 네트워크 대역폭 이용을 감소시킬 수 있다. 그러나, 컴퓨팅 디바이스(104)에 이용 가능한 컴퓨팅 리소스 및 이용가능한 네트워크 대역폭에 기초하여, 데이터 프로세싱 시스템(102)이 필터링을 수행할 수 있도록 입력 오디오 신호를 데이터 프로세싱 시스템(102)에 제공하는 것이 더 효율적일 수 있다.
프리-프로세서(140)는 자연어 프로세서를 방해할 수 있는 주변 소음 레벨을 감소시키기 위해 노이즈 감소 기법과 같은 추가 프리-프로세싱 또는 사전-필터링 기법을 적용할 수 있다. 노이즈 감소 기법은 자연어 프로세서의 정확성 및 속도를 향상시켜, 데이터 프로세싱 시스템(102)의 성능을 향상시키고 디스플레이(132)를 통해 제공되는 그래픽 사용자 인터페이스의 렌더링을 관리한다.
클라이언트 컴퓨팅 디바이스(104)(컴퓨팅 디바이스(104)로도 참조됨)는 (센서(134)를 통해) 음성 쿼리를 오디오 입력으로서 클라이언트 컴퓨팅 디바이스(104)에 입력하고, 데이터 프로세싱 시스템(102)(또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 챗봇 제공자 컴퓨팅 디바이스(108))로부터 클라이언트 컴퓨팅 디바이스(104)로 트랜스듀서(136)(예: 스피커)로부터의 출력에 제공될 수 있는 컴퓨터 생성 음성의 형태로 오디오 출력을 수신하는 최종 사용자와 연관될 수 있다. 컴퓨터 생성 음성은 실제 사람 또는 컴퓨터 생성 언어의 녹음을 포함할 수 있다. 클라이언트 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)에 통신 가능하게 연결된 디스플레이 디바이스(132)를 통해 시각적 출력을 제공할 수 있다.
클라이언트 컴퓨팅 디바이스(104)는 (센서(134)를 통해) 클라이언트 컴퓨팅 디바이스(104)로의 입력으로서 쿼리들을 표시할 수 있는 이미지 또는 비디오를 제공하는 최종 사용자와 연관될 수 있다. 최종 사용자는 데이터 프로세싱 시스템(102)(또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 챗봇 제공자 컴퓨팅 디바이스(108))로부터 클라이언트 컴퓨팅 디바이스(104)로 트랜스듀서(136)(예: 스피커)로부터의 출력에 제공될 수 있는 컴퓨터 생성 음성의 형태로 입력에 응답하여 오디오 출력을 수신할 수 있다. 최종 사용자는 데이터 프로세싱 시스템(102)(또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 챗봇 제공자 컴퓨팅 디바이스(108))으로부터 디스플레이(132)에 대한 클라이언트 컴퓨팅 디바이스(104) 출력에 제공될 수 있는 컴퓨터 생성 그래픽 사용자 인터페이스의 형태로 입력에 응답하여 시각적 출력을 수신할 수 있다. 하나 이상의 센서(134)에 의해 검출된 입력은 오디오 입력(예를 들어, 음향 신호), 시각적 입력(예를 들어, 이미지 또는 비디오 데이터), 모션 입력 또는 다른 입력 중 하나 이상을 포함할 수 있다. 컴퓨팅 디바이스(104)에 대한 입력(예를 들어, 오디오, 이미지, 시각 또는 모션 입력 중 하나 이상)은 디지털 파일로 변환되어, 추가 프로세싱 또는 액션을 생성하기 위해 데이터 프로세싱 시스템(102)에 제공될 수 있다. 예를 들면, 컴퓨팅 디바이스(104)에 대한 입력(예를 들어, 오디오, 이미지, 시각 또는 모션 입력 중 하나 이상)은 챗봇을 포함하는 컴퓨터 프로그램의 선택을 트리거링하고, 챗봇에 대해 입력될 쿼리의 생성을 트리거링하고, 챗봇은 생성된 쿼리에 대한 응답이거나 입력(예를 들어, 오디오, 이미지, 시각 또는 모션 입력 중 하나 이상)에 대응하는 출력을 컴퓨팅 디바이스(104)에 제공할 수 있다.
컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)의 센서(134)(예를 들어, 마이크로폰)에 의해 검출된 입력 오디오 신호를 수신할 수 있다. 입력 오디오 신호는 예를 들어, 쿼리, 질문, 명령, 지시 또는 언어로 제공된 다른 진술을 포함할 수 있다. 입력 오디오 신호는 질문 또는 쿼리가 향하는 챗봇의 식별자 또는 이름을 포함할 수 있다. 예를 들어, 쿼리는 데이터 프로세싱 시스템(102)에 지시하여 쿼리를 특정된 챗봇에 입력하도록 하기 위해 챗봇의 이름과 그 뒤에 쿼리가 포함될 수 있다. 예를 들어, 입력 오디오 신호는 "푸드봇, 근처에 좋은 음식점 제안해줘"를 포함할 수 있다. 입력 오디오 신호는 챗봇의 식별자를 포함하거나 포함하지 않을 수 있다.
시스템(100)은 적어도 하나의 서드 파티 챗봇 제공자 디바이스(108)를 포함, 액세스 또는 이와 인터렉션할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 하나 이상의 서버들을 포함할 수 있으며 서드 파티 챗봇 서버라고 지칭될 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 데이터 프로세싱 시스템(102)과 통합되거나 또는 데이터 프로세싱 시스템(102)에 의해 적어도 부분적으로 실행될 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 네트워크(105)를 통해 통신하기 위한 프로세서를 가지는 컴퓨팅 디바이스 예를 들어 컴퓨팅 디바이스(104), 데이터 프로세싱 시스템(102) 또는 콘텐츠 제공자 컴퓨팅 디바이스(106)와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 챗봇 제공자 디바이스(108)는 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 챗봇 제공자 디바이스(108)는 적어도 하나의 데이터 센터에 위치된 복수의 계산 리소스 또는 서버를 포함할 수 있다. 챗봇 제공자 디바이스(108)는 데이터 프로세싱 시스템(102)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다.
챗봇 제공자 디바이스(108)는 하나 이상의 챗봇들을 형성하거나 제공하는 컴퓨터 프로그램을 설계, 개발, 관리 또는 유지하는 엔터티와 같은 챗봇 개발자를 포함하거나 지칭할 수 있다. 챗봇은 청각, 시각 또는 텍스트 방법들을 통해 대화를 수행하는 컴퓨터 프로그램을 포함할 수 있다. 챗봇은 사람이 대화 파트너로서 어떻게 행동하는지 시뮬레이션하도록 설계될 수 있다. 챗봇은 고객 서비스 또는 정보 수집을 위해 대화 시스템에서 사용될 수 있다. 챗봇은 자연어 프로세싱 시스템(예를 들어, 자연어 프로세서 컴포넌트(112))을 포함하거나 사용할 수 있다. 챗봇은 입력 내에서 키워드들을 스캔한 다음 데이터베이스로부터 가장 매칭되는 키워드 또는 가장 유사한 단어 패턴으로 응답을 가져올 수 있다. 챗봇은 미리 정의된 대화 데이터 구조를 조회하기 위해 패턴 매칭을 사용하는 절차로 프로그래밍될 수 있다. 챗봇은 자연어 프로세싱 기법들로 프로그래밍되어, 입력의 문법과 구문을 식별하거나 입력을 토큰화하거나 이와 달리 입력을 프로세싱하여 응답을 결정할 수 있다.
챗봇 제공자 디바이스(108)는 적어도 하나의 챗봇 제공자 자연어 프로세서 컴포넌트(142) 및 챗봇 제공자 인터페이스(144)를 포함하거나 이와 인터페이스하거나 또는 이와 통신할 수 있다. 챗봇 제공자 컴퓨팅 디바이스(108)는 적어도 하나의 챗봇 제공자 자연어 프로세서 컴포넌트(142) 및 적어도 하나의 챗봇 제공자 인터페이스(144)를 포함할 수 있다. 챗봇 제공자 NLP 컴포넌트(142)(또는 챗봇 제공자 컴퓨팅 디바이스(108)의 그러한 다른 컴포넌트)는(데이터 프로세싱 시스템(102)을 통해 또는 데이터 프로세싱 시스템(102)을 우회함으로써) 클라이언트 컴퓨팅 디바이스(104)와 관련되어 클라이언트 컴퓨팅 디바이스(104)와 챗봇 제공자 컴퓨팅 디바이스(108) 사이에 오고 가는 실시간 음성 또는 오디오 기반 대화(예를 들어, 세션)를 생성할 수 있다. 챗봇 제공자 NLP(142)는 데이터 프로세싱 시스템(102)의 NLP 컴포넌트(112)로서 하나 이상의 기능 또는 구성을 포함할 수 있다. 예를 들어, 챗봇 제공자 인터페이스(144)는 데이터 메시지를 수신하거나 데이터 프로세싱 시스템(102)의 인터페이스(110)에 제공할 수 있다. 챗봇 제공자 컴퓨팅 디바이스(108) 및 콘텐츠 제공자 컴퓨팅 디바이스(106)는 동일한 엔터티와 연관될 수 있다. 예를 들어, 콘텐츠 제공자 컴퓨팅 디바이스(106)는 챗봇에 대한 디지털 컴포넌트들을 생성, 저장하고 또는 사용가능하게 할 수 있고, 챗봇 제공자 컴퓨팅 디바이스(108)는 클라이언트 컴퓨팅 디바이스(104)를 통해 챗봇을 통해 통신하기 위해 클라이언트 컴퓨팅 디바이스(106)와의 세션을 설정할 수 있다. 데이터 프로세싱 시스템(102)은 인터페이스(110), 챗봇 컴포넌트(114) 또는 다른 컴포넌트를 통해, 챗봇 제공자 컴퓨팅 디바이스(104)를 포함하거나 우회하는 클라이언트 컴퓨팅 디바이스(104)와의 세션을 설정할 수 있다.
서드 파티 챗봇 제공자 디바이스(108)는 데이터 프로세싱 시스템(102)을 관리 또는 제공하는 엔터티와 다른 엔터티의 하나 이상의 서버를 지칭할 수 있다. 서드 파티 챗봇 디바이스(108)는 챗봇을 위한 컴퓨터 프로그램들을 수신할 수 있다. 서드 파티 챗봇 디바이스(108)는 자연어 프로세싱 및 다른 기능을 제공할 수 있다. 서드 파티 챗봇 디바이스(108)는 챗봇 기능을 제공하기 위해 컴퓨팅 디바이스(104)와 인터페이스하거나 통신할 수 있다. 예를 들어, 서드 파티 챗봇 디바이스(108)는 컴퓨팅 디바이스(104)의 사용자와의 전환에 참여하기 위해 챗봇을 실행할 수 있다. 서드 파티 챗봇 디바이스(108)는 데이터 프로세싱 시스템(102) 및 컴퓨팅 디바이스(104)로부터 원격인 서버에서 실행될 수 있다. 일부 경우에, 서드 파티 챗봇 디바이스(108)는(예를 들어, 프리-프로세서(140)의 일부로서) 컴퓨팅 디바이스(104)에서 적어도 부분적으로 실행될 수 있다.
데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스 또는 서버를 갖는 콘텐츠 배치 시스템을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 인터페이스(110)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 자연어 프로세서 컴포넌트(112)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 챗봇 컴포넌트(114)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 후킹 컴포넌트(116)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 콘텐츠 선택 컴포넌트(118)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 출력 병합 컴포넌트(120)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 저장소(122)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 적어도 하나의 데이터 저장소(122)는 하나 이상의 데이터 구조 또는 데이터베이스에 템플릿(124), 이력 데이터(126), 콘텐츠 데이터(128) 또는 챗봇 데이터(130)를 포함하거나 저장할 수 있다. 데이터 저장소(122)는 컴퓨터 데이터 저장 또는 메모리를 포함할 수 있고, 다른 데이터 중에서 하나 이상의 템플릿(124), 이력 데이터(126), 콘텐츠 데이터(128) 또는 챗봇 데이터(130)를 저장할 수 있다. 템플릿(124)은 디스플레이 출력 생성을 용이하게 하는 정보를 포함할 수 있다. 템플릿(124)은 그래픽 사용자 인터페이스 템플릿을 포함할 수 있다. 그래픽 사용자 인터페이스 템플릿은 챗봇 인터페이스를 통한 디스플레이 출력과 같은 디스플레이 출력을 생성하기 위한 폰트, 색상 또는 레이아웃을 정의할 수 있다. 템플릿(124)은 예를 들어 데이터 구조, 사진 편집 파일 또는 스타일 시트로서 저장될 수 있다.
이력 데이터(126)는 하나 이상의 데이터 구조들에 저장될 수 있다. 이력 데이터(126)는 컴퓨팅 디바이스(104)와 연관된 이력적 네트워크 활동, 컴퓨팅 디바이스(104)에 의해 활용된 챗봇의 식별자, 컴퓨팅 디바이스(104)의 구성, 디바이스 기능, 선호도, 또는 콘텐츠 선택 또는 디지털 컴포넌트가 삽입될 챗봇 결과들 중에서의 포지션을 선택하는 것을 용이하게 할 수 있는 컴퓨팅 디바이스(104)와 연관된 다른 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어 콘텐츠 캠페인 정보, 콘텐츠 그룹, 콘텐츠 선택 기준, 디지털 컴포넌트 오브젝트 또는 콘텐츠 제공자 컴퓨팅 디바이스(106)에 의해 제공되거나 콘텐츠 선택을 용이하게 하기 위해 데이터 프로세싱 시스템에 의해 획득 또는 결정된 다른 정보를 포함할 수 있다. 콘텐츠 데이터(130)는 예를 들어 콘텐츠 캠페인의 과거 성능을 포함할 수 있다. 콘텐츠 데이터(128)는 오디오 출력, 디스플레이 출력 또는 연관 메타데이터에 대한 디지털 컴포넌트들 뿐만 아니라 클라이언트 컴퓨팅 디바이스(104)와의 하나 이상의 통신 세션의 일부일 수 있는 입력 오디오 메시지를 포함할 수 있다. 디지털 컴포넌트(또는 디지털 컴포넌트 오브젝트)는 예를 들어 콘텐츠 아이템, 온라인 문서, 오디오, 이미지, 비디오, 멀티미디어 콘텐츠 또는 스폰서 콘텐츠를 포함할 수 있다.
챗봇 데이터(130)는 챗봇에 대한 식별자, 챗봇 유형에 관한 정보(예를 들어, 카테고리, 제한 또는 주제)를 포함할 수 있다. 챗봇 데이터(130)는 데이터 구조에 저장될 수 있고 챗봇의 식별자에 기초하여 색인될 수 있다. 챗봇 데이터(130)는 컴퓨팅 디바이스(104)와 연관된 식별자에 기초하여 추가로 색인될 수 있다. 데이터 저장소(122)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있고, 데이터베이스 관리 시스템을 포함할 수 있다.
인터페이스(110), 자연어 프로세서 컴포넌트(112), 챗봇 컴포넌트(114), 후킹 컴포넌트(116), 콘텐츠 선택 컴포넌트(118) 또는 출력 병합 컴포넌트(120)는 각각 적어도 하나의 프로세싱 유닛 또는 데이터베이스 저장소 또는 데이터베이스(122)와 통신하도록 구성된 프로그래머블 논리 어레이 엔진 또는 모듈과 같은 다른 논리 디바이스를 포함할 수 있다. 인터페이스(110), 자연어 프로세서 컴포넌트(112), 챗봇 컴포넌트(114), 후킹 컴포넌트(116), 콘텐츠 선택 컴포넌트(118), 출력 병합 컴포넌트(120) 및 데이터 저장소(122)는 별개의 컴포넌트, 단일 컴포넌트 또는 데이터의 일부일 수 있다. 데이터 프로세싱 시스템(102)과 같은 시스템(100) 및 그 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 복수의 컴퓨팅 디바이스(104)와 연관된 익명의 컴퓨터 네트워크 활동 정보를 얻을 수 있다. 컴퓨팅 디바이스(104)의 사용자는 사용자의 컴퓨팅 디바이스(104)에 대응하는 네트워크 활동 정보를 획득하도록 데이터 프로세싱 시스템(102)을 긍정적으로 인증할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)의 사용자에게 하나 이상의 유형의 네트워크 활동 정보를 얻기 위한 동의를 프롬프트할 수 있다. 컴퓨팅 디바이스(104)의 사용자의 신원은 익명으로 유지될 수 있고, 컴퓨팅 디바이스(104)는 고유 식별자(예를 들어, 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공되는 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 연관될 수 있다. 데이터 프로세싱 시스템은 각 관측을 해당 고유 식별자와 연결할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 클라이언트 컴퓨팅 디바이스(104)에 의해 제시하기 위한 오디오, 시각, 멀티미디어 기반 디지털 컴포넌트들을 오디오 출력 디지털 컴포넌트 또는 시각적 출력 디지털 컴포넌트로서 제공할 수 있다. 상기 디지털 컴포넌트는 디지털 컴포넌트이거나 이를 포함할 수 있다. 디지털 컴포넌트는 디지털 오브젝트이거나 이를 포함할 수 있다. 디지털 컴포넌트는 상품 또는 서비스의 브랜드 이름 또는 회사 이름을 포함할 수 있다. 디지털 컴포넌트는 파라미터에 의해 구동되는 텍스트-음성 기법을 위해 구성될 수 있다. 디지털 컴포넌트는 일반 언어 텍스트를 음성으로 변환하는 TTS(text-to-speech) 구현을 위해 구성될 수 있다. 디지털 컴포넌트는 음성 합성 기능을 활용하여 텍스트를 다양한 언어, 악센트 및 음성의 자연스러운 음성으로 합성하는 어플리케이션 프로그래밍 인터페이스에 대한 입력일 수 있다. 디지털 컴포넌트는 일반 텍스트 또는 SSML(음성 합성 마크업 언어)로 코딩될 수 있다. SSML은 발음, 음량, 피치 또는 음향 지문 또는 네이티브 음성을 형성할 수 있는 속도와 같은 음성 측면을 제어하도록 설정될 수 있는 파라미터들을 포함할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 콘텐츠 선택 프로세스를 지원하기 위해 값, 키워드, 개념 또는 다른 메타데이터 또는 정보와 같은 디지털 컴포넌트에 대한 콘텐츠 선택 기준을 제공할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 또한 오디오 기반 디지털 컴포넌트(또는 다른 디지털 컴포넌트)를 이들이 데이터 저장소(122)에 저장될 수 있는 데이터 프로세싱 시스템(102)에 제공할 수 있다. 데이터 프로세싱 시스템(102)은 오디오 디지털 컴포넌트들(또는 파라미터에 의해 구동되는 텍스트, 이미지 또는 비디오-음성 기법을 위해 구성된 디지털 컴포넌트들)를 선택하고, 오디오 디지털 컴포넌트들을 클라이언트 컴퓨팅 디바이스(104)에 제공할 수 있다(또는 콘텐츠 제공자 컴퓨팅 디바이스(106)에 지시하여 제공하도록 함). 오디오 기반 디지털 컴포넌트는 독점적으로 오디오일 수 있거나 텍스트, 이미지 또는 비디오 데이터와 결합될 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 콘텐츠 데이터 구조(128) 내의 데이터 저장소(122)에 저장하기 위해 디지털 컴포넌트를 데이터 프로세싱 시스템(102)에 제공할 수 있다. 데이터 프로세싱 시스템(102)은 콘텐츠에 대한 요청에 응답하거나 디지털 컴포넌트를 제공하기 위한 결정에 응답하여 디지털 컴포넌트를 검색할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 전자 콘텐츠 캠페인을 설정할 수 있다. 전자 콘텐츠 캠페인은 데이터 저장소(122)에 콘텐츠 데이터(128)로서 저장될 수 있다. 전자 콘텐츠 캠페인은 공통 테마에 해당하는 하나 이상의 콘텐츠 그룹을 지칭할 수 있다. 콘텐츠 캠페인은 콘텐츠 그룹, 디지털 컴포넌트 데이터 오브젝트(예컨대, 디지털 컴포넌트 또는 디지털 오브젝트) 및 콘텐츠 선택 기준을 포함하는 계층적 데이터 구조를 포함할 수 있다. 콘텐츠 캠페인을 생성하기 위해, 콘텐츠 제공자 컴퓨팅 디바이스(106)는 콘텐츠 캠페인의 캠페인 레벨 파라미터에 대한 값을 특정할 수 있다. 캠페인 레벨 파라미터는 예를 들어 캠페인 이름, 디지털 컴포넌트 오브젝트를 배치하기 위한 선호하는 콘텐츠 네트워크, 콘텐츠 캠페인에 사용될 리소스의 값, 콘텐츠 캠페인의 시작 및 종료 날짜, 콘텐츠 캠페인의 지속 기간, 디지털 컴포넌트 오브젝트 배치 일정, 언어, 지리적 위치, 디지털 컴포넌트 오브젝트를 제공할 컴퓨팅 디바이스 유형을 포함할 수 있다. 일부 경우에, 노출은 디지털 컴포넌트 오브젝트가 그 소스(예를 들어, 데이터 프로세싱 시스템(102) 또는 콘텐츠 제공자 컴퓨팅 디바이스(106))로부터 페치되고 카운트될 때를 지칭할 수 있다. 일부 경우에, 클릭 사기 가능성으로 인해, 로봇 활동이 필터링되어 노출로서 제외될 수 있다. 따라서, 일부 경우에, 노출은 브라우저로부터의 페이지 요청에 대한 웹 서버로부터의 응답의 측정을 지칭하며, 로봇 활동 및 오류 코드가 필터링되며, 컴퓨팅 디바이스(104) 상에 디스플레이하기 위해 디지털 컴포넌트 오브젝트를 렌더링하기 위한 가능한 한 가까운 시점에 기록된다. 일부 경우에, 노출은 시각적 또는 청각적 노출을 지칭할 수 있다: 예를 들어, 디지털 컴포넌트 오브젝트 또는 디지털 컴포넌트는 클라이언트 컴퓨팅 디바이스의 디스플레이 디바이스에서 적어도 부분적으로(예: 20%, 30%, 30%, 40%, 50%, 60%, 70% 이상) 볼 수 있거나 또는 컴퓨팅 디바이스(104)의 스피커(136)를 통해 들을 수 있다. 클릭 또는 선택은 청각적 노출에 대한 음성 응답, 마우스 클릭, 터치 인터렉션, 제스처, 쉐이크, 오디오 인터렉션 또는 키보드 클릭과 같은 디지털 컴포넌트 오브젝트와의 사용자 인터렉션을 지칭할 수 있다. 전환은 디지털 컴포넌트 오브젝션과 관련하여 원하는 액션을 취하는 사용자를 지칭할 수 있다: 예를 들어, 제품 또는 서비스 구매, 설문 조사 완료, 디지털 컴포넌트에 대응하는 물리적 상점 방문 또는 전자 거래 완료.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 콘텐츠 캠페인에 대한 하나 이상의 콘텐츠 그룹을 추가로 설정할 수 있다. 콘텐츠 그룹은 하나 이상의 디지털 컴포넌트 오브젝트 및 대응하는 콘텐츠 선택 기준, 예컨대 키워드, 단어, 용어, 문구, 지리적 위치, 컴퓨팅 디바이스의 유형, 시각, 관심사, 주제 또는 버티칼(vertical)을 포함한다. 동일한 콘텐츠 캠페인 하의 콘텐츠 그룹은 동일한 캠페인 레벨 파라미터들을 공유할 수 있지만 키워드, 제외 키워드(예: 메인 콘텐츠에 제외 키워드가 존재하는 경우 디지털 컴포넌트의 배치를 차단), 키워드 입찰가 또는 입찰 또는 콘텐츠 캠페인과 연관된 파라미터들과 같은 콘텐츠 그룹 레벨 파라미터들에 대한 세부사항을 조절할 수 있다.
새로운 콘텐츠 그룹을 생성하기 위해, 콘텐츠 제공자 컴퓨팅 디바이스(106)는 콘텐츠 그룹의 콘텐츠 그룹 레벨 파라미터에 대한 값을 제공할 수 있다. 콘텐츠 그룹 레벨 파라미터는 예를 들어 콘텐츠 그룹 이름 또는 콘텐츠 그룹 테마 및 상이한 콘텐츠 배치 기회(예를 들어, 자동 배치 또는 선택 배치)에 대한 입찰 또는 결과(예를 들어, 클릭, 노출 또는 전환)를 포함한다. 콘텐츠 그룹 이름 또는 콘텐츠 그룹 테마는 콘텐츠 제공자 컴퓨팅 디바이스(106)가 콘텐츠 그룹의 디지털 컴포넌트 오브젝트가 디스플레이를 위해 선택될 토픽 또는 주제를 캡처하기 위해 사용할 수 있는 하나 이상의 용어일 수 있다. 예를 들어, 식음료 회사는 보유하는 각 브랜드의 음식 또는 음료 브랜드마다 다른 콘텐츠 그룹을 생성할 수 있고, 보유하는 차량의 각 모델마다 다른 콘텐츠 그룹을 생성할 수 있다. 식음료 회사가 사용할 수 있는 콘텐츠 그룹 테마의 예는 "브랜드 A 콜라", "브랜드 B 진저 에일", "브랜드 C 오렌지 주스", "브랜드 D 스포츠 음료"또는 "브랜드 E 생수"를 포함한다. 예시적 콘텐츠 캠페인 테마는 "소다"일 수 있고, 예를 들어 "브랜드 A 콜라"및 "브랜드 B 진저 에일" 둘 모두에 대한 콘텐츠 그룹을 포함한다. 디지털 컴포넌트(또는 디지털 컴포넌트 오브젝트 또는 디지털 컴포넌트)은 "브랜드 A", "브랜드 B", "브랜드 C", "브랜드 D" 또는 "브랜드 E"를 포함할 수 있다. 디지털 컴포넌트 오브젝트 또는 디지털 컴포넌트는 파라미터에 의해 구동되는 텍스트-음성 기법을 위해 구성된 디지털 컴포넌트를 지칭할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 하나 이상의 키워드 및 디지털 컴포넌트 오브젝트를 각각의 콘텐츠 그룹에 제공할 수 있다. 키워드는 디지털 컴포넌트 오브젝트과 연관되거나 식별된 상품 또는 서비스와 관련된 용어를 포함할 수 있다. 키워드는 하나 이상의 용어 또는 문구를 포함할 수 있다. 예를 들어, 식음료 회사는 "소다", "콜라", "소프트드링크"를 브랜드가 제공하는 상품이나 서비스를 설명할 수 있는 콘텐츠 그룹 또는 콘텐츠 캠페인의 키워드로 포함할 수 있다. 일부 경우에, 제외 키워드가 콘텐츠 제공자에 의해 특정되어, 일정 용어 또는 키워드에 대한 콘텐츠 배치를 회피, 방지, 차단 또는 비활성화할 수 있다. 콘텐츠 제공자는 디지털 컴포넌트 오브젝트를 선택하는데 사용되는 매칭 유형(예: 완전 매치, 구문 매치 또는 확장 매치)을 특정할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 콘텐츠 제공자 컴퓨팅 디바이스(106)에 의해 제공된 디지털 컴포넌트 오브젝트를 선택하기 위해 데이터 프로세싱 시스템(102)에 의해 사용될 하나 이상의 키워드를 제공할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 입찰할 하나 이상의 키워드를 식별하고, 다양한 키워드에 대한 입찰 금액을 추가로 제공할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 디지털 컴포넌트 오브젝트를 선택하기 위해 데이터 프로세싱 시스템(102)에 의해 사용될 추가적 콘텐츠 선택 기준을 제공할 수 있다. 다수의 콘텐츠 제공자(106)는 동일하거나 상이한 키워드에 입찰할 수 있고, 데이터 프로세싱 시스템(102)은 전자 메시지의 키워드의 표시를 수신하는 것에 응답하여 콘텐츠 선택 프로세스 또는 광고 경매를 실행할 수 있다.
콘텐츠 제공자 컴퓨팅 디바이스(106)는 데이터 프로세싱 시스템(102)의 선택을 위한 하나 이상의 디지털 컴포넌트 오브젝트를 제공할 수 있다. 데이터 프로세싱 시스템(102)(예를 들어, 콘텐츠 선택 컴포넌트(118)를 통해)은 콘텐츠 배치 기회가 사용가능한 경우, 리소스 할당, 콘텐츠 스케줄, 최대 입찰, 키워드 및 콘텐츠 그룹에 대해 특정된 다른 선택 기준과 매칭되는 디지털 컴포넌트 오브젝트를 선택할 수 있다. 음성 디지털 컴포넌트, 오디오 디지털 컴포넌트, 텍스트 디지털 컴포넌트, 이미지 디지털 컴포넌트, 비디오 디지털 컴포넌트, 멀티미디어 디지털 컴포넌트 또는 디지털 컴포넌트 링크와 같은 상이한 유형의 디지털 컴포넌트 오브젝트가 콘텐츠 그룹에 포함될 수 있다. 디지털 컴포넌트를 선택하면, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 디스플레이 디바이스 상에 렌더링하기 위해 디지털 컴포넌트 오브젝트를 전송할 수 있다. 렌더링은 디스플레이 디바이스 상에 디지털 컴포넌트를 디스플레이하거나, 컴퓨팅 디바이스(104)의 스피커를 통해 디지털 컴포넌트를 재생하는 것을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104) 또는 챗봇 컴포넌트(114) 또는 서드 파티 챗봇 제공자 디바이스(108)에 명령어들을 제공하여 디지털 컴포넌트 오브젝트를 제시할 수 있다. 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104) 또는 컴퓨팅 디바이스(104)의 오디오 드라이버(138)에게 오디오 신호, 음향 파장 또는 시각적 출력을 생성하도록 지시할 수 있다.
데이터 프로세싱 시스템(102)은 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성, 또는 동작하는 인터페이스 컴포넌트(110)를 포함할 수 있다. 인터페이스(110)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(110)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(110)는 한 포맷에서 다른 포맷으로 데이터를 변환하거나 포맷하는 것을 용이하게 할 수 있다. 예를 들어, 인터페이스(110)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트들 사이에서 통신하기 위한 정의를 포함하는 어플리케이션 프로그래밍 인터페이스를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 입력 오디오 신호를 데이터 프로세싱 시스템(102)의 인터페이스(110)에 통신하고 클라이언트 컴퓨팅 디바이스의 컴포넌트를 출력 오디오 신호 또는 시각적 출력을 렌더링하기 위해 구동하기 위한 어플리케이션과 같은 클라이언트 컴퓨팅 디바이스(104)에 설치된 어플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 패킷, 디지털 파일, 또는 오디오 입력 신호(또는 입력 오디오 신호)를 포함하거나 식별하는 다른 신호를 수신할 수 있다. 컴퓨팅 디바이스(104)는 트랜스듀서(136)를 통해 오디오 신호를 검출하고, 아날로그-디지털 변환기를 통해 아날로그 오디오 신호를 디지털 파일로 변환할 수 있다. 예를 들어, 오디오 드라이버(138)는 아날로그-디지털 변환기 컴포넌트를 포함할 수 있다. 일부 경우에, 프리-프로세서 컴포넌트(140)는 오디오 신호를 네트워크(105)를 통해 데이터 패킷들을 통해 전송될 수 있는 디지털 파일로 변환할 수 있다.
데이터 프로세싱 시스템(102)은 NLP 컴포넌트(112)를 실행하여 컴퓨팅 디바이스(104)의 센서(134)에 의해 검출된 입력 오디오 신호를 포함하는 디지털 패킷들을 수신 또는 획득할 수 있다. 데이터 패킷들은 디지털 파일을 제공할 수 있다. NLP 컴포넌트(112)는 오디오 신호를 포함하는 디지털 파일 또는 데이터 패킷들을 수신 또는 획득하고 오디오 신호를 파싱할 수 있다. 예를 들어, NLP 컴포넌트(112)는 인간과 컴퓨터 간의 인터렉션들을 제공할 수 있다. NLP 컴포넌트(112)는 자연어를 이해하고 데이터 프로세싱 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록 하는 기법으로 구성될 수 있다. NLP 컴포넌트(112)는 통계적 기계 학습과 같은 기계 학습에 기초한 기법을 포함하거나 그러한 기법으로 구성될 수 있다. NLP 컴포넌트(112)는 입력 오디오 신호를 파싱하기 위해 디시전 트리, 통계 모델 또는 확률 모델을 이용할 수 있다. NLP 컴포넌트(112)는 기능들을 포함할 수 있고, 상기 기능들은 명명된 엔터티 인식(예: 주어진 텍스트의 스트림, 사람들 또는 장소들과 같이 적절한 이름에 대한 텍스트 맵의 아이템 결정, 상기 각 이름이 어떤 유형인지 예를 들어, 사람, 위치 또는 조직), 자연어 생성(예: 컴퓨터 데이터베이스로부터의 정보 또는 의미론적 의도를 이해가능한 인간 언어로 변환), 자연어 이해(예: 컴퓨터 모듈이 조작할 수 있는 텍스트를 제1 순서 로직 구조와 같은 더 형식적인 표현으로 변환), 기계 번역(예: 텍스트를 하나의 인간 언어로부터 다른 언어로 자동적으로 번역), 형태학적 세그먼트화(예: 단어를 개별 형태소로 분리하고 형태소의 클래스를 식별, 이는 고려되고 있는 언어의 단어의 형태론 또는 구조의 복잡도에 따라 어려울 수 있음), 질문에 답변(예: 특정적이거나 개방적일 수 있는 인간-언어 질문에 대한 답을 결정), 의미론 프로세싱(예: 식별된 단어를 유사한 의미의 다른 단어와 관련시키기 위해 단어를 식별하고 그것의 의미를 인코딩한 후에 발생할 수 있는 프로세싱)을 포함한다.
NLP 컴포넌트(112)는 입력 신호를(예를 들어, 데이터 저장소(122)에) 저장된 대표적인 오디오 파형 세트와 비교하고 가장 근접한 매칭을 선택함으로써, 오디오 입력 신호를 인식된 텍스트로 변환할 수 있다. 오디오 파형 세트는 데이터 저장소(122) 또는 데이터 프로세싱 시스템(102)이 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형은 다수의 사용자 세트에 걸쳐 생성된 후, 사용자로부터의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(112)는 예를 들어, 데이터 프로세싱 시스템(102)이 제공할 수 있는 동작과 함께, 예를 들어 사용자를 통한 트레이닝 또는 수동 스펙을 통해 연관된 단어에 텍스트를 매칭한다. NLP 컴포넌트(112)는 이미지 또는 비디오 입력을 텍스트 또는 디지털 파일로 변환할 수 있다. NLP 컴포넌트(112)는 이미지 또는 비디오 입력을 프로세싱, 분석 또는 해석하여 액션을 수행하거나, 요청을 생성하거나, 데이터 구조를 선택 또는 식별할 수 있다.
오디오 입력 신호는 클라이언트 컴퓨팅 디바이스(104)의 센서(134) 또는 트랜스듀서(136)(예를 들어, 마이크로폰)에 의해 검출될 수 있다. 트랜스듀서(136), 오디오 드라이버(138) 또는 다른 컴포넌트를 통해, 클라이언트 컴퓨팅 디바이스(104)는 오디오 입력 신호를 (예를 들어, 네트워크(105)를 통해) 데이터 프로세싱 시스템(102)에 제공할 수 있고, 데이터 프로세싱 시스템(102)에서 상기 오디오 입력 신호는 (예를 들어, 인터페이스(110)에 의해) 디지털 파일 또는 디지털 포맷으로서 수신될 수 있고, NLP 컴포넌트(112)에 제공되거나 데이터 저장소(122)에 저장된다. 일부 경우에, 데이터 프로세싱 시스템(102)은 입력 음향 신호에 더하여 또는 그 대신에 이미지 또는 비디오 입력 신호를 수신할 수 있다. 데이터 프로세싱 시스템(102)은 예를 들어 이미지 해석 기법, 컴퓨터 비전, 기계 학습 엔진 또는 이미지 또는 비디오를 인식하여 상기 이미지 또는 비디오를 디지털 파일로 변환하기 위한 다른 기법을 사용하여, 이미지 또는 비디오 입력 신호를 프로세싱할 수 있다. 하나 이상의 이미지 해석 기법, 컴퓨터 비전 기법, 기계 학습 기법은 총괄적으로 이미징 기법으로 지칭될 수 있다. 데이터 프로세싱 시스템(102)(예를 들어, NLP 컴포넌트(112))은 오디오 프로세싱 기법에 더하여 또는 그 대신에 이미징 기법으로 구성될 수 있다.
NLP 컴포넌트(112)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(112)는 요청에 대응하는 적어도 하나의 요청 또는 적어도 하나의 트리거 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 표시할 수 있다. 트리거 키워드는 취해질 수 있는 액션의 유형을 표시할 수 있다. 예를 들어, NLP 컴포넌트(112)는 저녁에 저녁 식사 및 영화 관람을 위해 동안 집을 떠나는 적어도 하나의 요청을 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 트리거 키워드는 적어도 하나의 단어, 문구, 어근 또는 부분 단어 또는 취해질 액션을 표시하는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호에서 트리거 키워드 "go" 또는 "to go to"는 전송 필요성을 표시할 수 있다. 이 예에서, 입력 오디오 신호(또는 식별된 요청)는 전송 의도를 직접 표현하지 않지만, 트리거 키워드는 전송이 요청에 의해 표시되는 적어도 하나의 다른 액션에 대한 보조 액션임을 표시한다.
NLP 컴포넌트(112)는 입력 오디오 신호를 파싱하여, 요청 및 트리거 키워드를 식별, 결정, 검색 또는 획득할 수 있다. 예를 들어, NLP 컴포넌트(112)는 트리거 키워드 또는 요청을 식별하기 위해 의미론 프로세싱 기법을 입력 오디오 신호에 적용할 수 있다. NLP 컴포넌트(112)는 의미론 프로세싱 기법을 입력 오디오 신호에 적용하여, 제1 트리거 키워드 및 제2 트리거 키워드와 같은 하나 이상의 트리거 키워드를 포함하는 트리거 문구를 식별할 수 있다. 예를 들어, 입력 오디오 신호는 "푸드봇, 근처에 좋은 음식점 제안해줘"라는 문장을 포함할 수 있다. NLP 컴포넌트(112)는 입력 오디오 신호가 애플리케이션 식별자 및 쿼리를 포함한다고 결정할 수 있다. 애플리케이션 식별자는 챗봇 식별자 또는 이름을 지칭할 수 있다. NLP 컴포넌트(112)는 의미론 프로세싱 기법 또는 다른 자연어 프로세싱 기법을 문장을 포함하는 데이터 패킷에 적용하여, 애플리케이션 식별자 "푸드봇" 및 쿼리 "근처에 좋은 음식점 제안해줘"를 식별할 수 있다. NLP 컴포넌트(112)는 애플리케이션에 입력하기 위한 쿼리를 생성하는데 사용될 수 있는 "좋은", "음식점" 및 "근처"와 같은 다수의 키워드를 추가로 식별할 수 있다. 예를 들어, NLP 컴포넌트(112)는 트리거 문구가 트리거 키워드 및 쿼리를 형성하는데 사용될 수 있는 복수의 추가 키워드들을 포함한다고 결정할 수 있다.
NLP 컴포넌트(112)는 애플리케이션 식별자 및 쿼리를 식별하기 위해 입력 오디오 신호를 필터링할 수 있다. 일부 경우에, 입력 오디오 신호는 쿼리를 포함할 수 있지만 챗봇의 애플리케이션 식별자 또는 이름을 포함하지 않을 수 있다. 예를 들어, 입력 오디오 신호를 운반하는 데이터 패킷은 "근처에 좋은 음식점을 찾는데 도움을 받을 수 있다면 좋을 것이다(It would be great if I could get help finding some good restaurants nearby)"를 포함할 수 있으며, 이 경우 NLP 컴포넌트(112)는 다음과 같은 하나 이상의 용어를 필터링할 수 있다. "it","Would","Be","great","if","I","Could","get"또는"help". 이러한 용어를 필터링함으로써, NLP 컴포넌트(112)는 "찾는데", "좋은", "음식점", "근처"와 같은 쿼리 또는 키워드를 보다 정확하고 신뢰성 있게 식별하고, 이것이 음식점 챗봇을 런칭하기 위한 요청이라고 결정할 수 있다.
입력 오디오 신호는 원하는 챗봇에 대한 식별자와 같은 애플리케이션 식별자를 포함할 수 있다. 입력 오디오 신호는 챗봇의 고유 식별자, 챗봇의 이름 또는 챗봇을 시작하거나 호출할 다른 표시를 포함할 수 있다. 예를 들어, 입력 오디오 신호는 "푸드봇"과 같은 챗봇의 이름을 포함할 수 있다. 애플리케이션 식별자는 영숫자 식별자일 수 있다.
따라서, 데이터 프로세싱 시스템(102)은 상기 컴퓨팅 디바이스(104)의 센서(234) 또는 트랜스듀서(136)에 의해 검출된 음성 콘텐츠를 운반하는 입력 오디오 신호에 대응하는 데이터 패킷들을 수신할 수 있다. 입력 오디오 신호는 컴퓨팅 디바이스(104)의 아날로그-디지털 변환기(예: 오디오 드라이버(138))에 의해 디지털 파일로 변환될 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해 디지털 파일에 대응하는 데이터 패킷들을 수신한 다음, 데이터 패킷들 또는 디지털 파일을 파싱하여 챗봇을 포함하는 컴퓨터 프로그램을 선택할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 데이터 패킷들 또는 디지털 파일에 응답하여, 데이터 프로세싱 시스템(102) 또는 컴퓨팅 디바이스(104) 또는 서드 파티 챗봇 제공자 디바이스(108)에 의해 실행되는 챗봇을 포함하는 컴퓨터 프로그램을 선택하도록 설계되고 구성된 챗봇 컴포넌트(114)를 포함할 수 있다.
챗봇 컴포넌트(114)는 디지털 파일에서 키워드, 토큰, 용어, 개념 또는 다른 정보를 식별할 수 있다. 챗봇 컴포넌트(114)는 디지털 파일에서 키워드, 토큰, 용어, 개념 또는 다른 정보를 식별하기 위해 자연어 프로세서 컴포넌트(112)를 활용할 수 있다. 자연어 프로세서 컴포넌트(112)는 파싱된 키워드, 토큰, 용어 또는 개념을 챗봇 컴포넌트(114)에 제공할 수 있다. 챗봇 컴포넌트(114)는 디지털 파일의 키워드 또는 개념에 대한 응답인 챗봇을 선택할 수 있다. 챗봇 컴포넌트(114)는 입력 오디오 신호에 제공된 애플리케이션 식별자에 매핑되는 챗봇을 선택할 수 있다.
데이터 프로세싱 시스템(102)은 (예를 들어, NLP 컴포넌트(112) 또는 챗봇 컴포넌트(114)를 통해) 입력 오디오 신호가 애플리케이션 식별자 "푸드봇"을 포함한다고 결정할 수 있다. NLP 컴포넌트(112) 또는 챗봇 컴포넌트(114)는 입력 오디오 신호에서 쿼리를 추가로 식별할 수 있다. NLP 컴포넌트(112)는 애플리케이션 식별자를 챗봇 컴포넌트(114)에 제공할 수 있다. 챗봇 컴포넌트(114)는 애플리케이션 식별자 "푸드봇"을 매핑하는 챗봇을 식별하기 위해 챗봇 데이터 구조(130)에서 조회(lookup)를 수행할 수 있다. 일부 경우에, 입력 오디오 신호는 챗봇 식별자를 포함하지 않을 수 있지만, 쿼리에 대한 응답을 제공할 수 있는 챗봇의 유형을 표시하는 쿼리를 포함할 수 있다. 예를 들어, 챗봇 데이터 구조(130)는 챗봇이 제공할 수 있는 상품, 서비스 또는 기능(예: 음식점 검색)을 각각의 챗봇에 대해 기술하는 키워드 또는 다른 정보를 포함할 수 있다. 챗봇 컴포넌트(114)는 챗봇 데이터 구조(130)를 통해 결정된 식별자를 사용하여 대응하는 챗봇을 런칭, 개시, 실행 또는 활성화할 수 있다. 일부 경우에, 식별자는 파일명 또는 파일 경로, 포인터, 웹 주소, 인터넷 프로토콜 주소, URL 또는 챗봇에 대한 다른 식별 정보를 포함하거나 이와 연관될 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 레시피 챗봇이 서드 파티 챗봇 제공자 디바이스(108)을 통해 제공되는 것을 결정하고, 서드 파티 챗봇 제공자 디바이스(108)에게 음식점 검색 챗봇을 런칭하고, 직접 또는 데이터 프로세싱 시스템(102)(예를 들어, 챗봇 컴포넌트(114)를 통해) 컴퓨팅 디바이스(104)와 관여할 것을 지시할 수 있다.
따라서, 데이터 프로세싱 시스템(102)은 입력 오디오 신호로부터 애플리케이션 식별자 및 상기 애플리케이션 식별자에 대응하는 애플리케이션으로 입력될 쿼리를 결정할 수 있다. 데이터 프로세싱 시스템(102)은 쿼리를 애플리케이션 또는 챗봇에 제공하여, 상기 애플리케이션으로 하여금 서드 파티 서버로 전송하기 위한 제2 쿼리를 생성하게 하고, 컴퓨팅 디바이스(104)를 통해 디스플레이하기 위한 쿼리에 대한 복수의 응답들을 식별한다. 예를 들어, 챗봇 컴포넌트(114)는 챗봇을 적어도 부분적으로 실행하거나 챗봇과 컴퓨팅 디바이스(104) 사이의 인터페이스를 용이하게 할 수 있다. 데이터 프로세싱 시스템(102)은 챗봇을 호출하고 입력 오디오 신호를 통해 수신된 쿼리를 입력할 수 있다. 챗봇은 실행시, 쿼리를 식별한 다음, 서드 파티 챗봇 제공자 디바이스(108)로 전송할 제2 쿼리를 생성할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 제2 쿼리를 수신하고, 검색을 수행한 다음, 쿼리에 대한 하나 이상의 응답들을 생성할 수 있다.
일부 경우에, 챗봇의 런치 또는 실행을 런칭하거나 유발하기 전에, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)가 챗봇에 액세스 할 권한이 있는지 여부를 결정할 수 있다. 데이터 프로세싱 시스템(102)은(예를 들어, 챗봇 컴포넌트(114)를 통해) 컴퓨팅 디바이스(104)가 챗봇을 포함하는 컴퓨터 프로그램에 액세스할 수 권한이 있는지를 결정하기 위해 컴퓨팅 디바이스(104)의 식별자로 데이터 저장소(122)(예를 들어, 챗봇 데이터(130))에서 조회를 수행할 수 있다. 인증은 구독, 계획, 제한, 리소스 요구 사항, 버전 관리 또는 디바이스 기능에 기초할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)가 미리 정의된 버전의 운영 체제로 구성된 경우 컴퓨팅 디바이스(104)에 챗봇에 대한 액세스를 부여할 수 있다. 다른 예시에서, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)가 유효한 계정 또는 프로필과 연관된 경우 컴퓨팅 디바이스(104)에 챗봇에 대한 액세스를 부여할 수 있다. 일부 경우에, 데이터 프로세싱 시스템(102)이 컴퓨팅 디바이스(102)가 챗봇에 액세스 할 권한이 없다고 결정하면, 데이터 프로세싱 시스템(102)은 스레드를 종료하거나, 사용자에게 프롬프트하거나 또는 컴퓨팅 디바이스(104)가 액세스 할 수 있는 다른 챗봇을 식별할 수 있다. 따라서, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)가 챗봇에 대한 액세스 권한이 있다는 결정에 응답하여 챗봇을 선택할 수 있다.
인터페이스(110)는 챗봇 자체를 런치하거나, 서드 파티 챗봇 제공자 디바이스(108)에 지시하여 상기 서드 파티 챗봇 제공자 디바이스(108)으로 하여금 챗봇과 연관된 대화형 어플리케이션 프로그래밍 인터페이스(예: NLP 컴포넌트(142))를 호출하고, 데이터 프로세싱 시스템(102) 또는 서드 파티 챗봇 제공자 디바이스(108)과 클라이언트 컴퓨팅 디바이스(104) 사이의 통신 세션 설정하게 한다. 데이터 프로세싱 시스템(102) 또는 서드 파티 챗봇 제공자 디바이스(108)과 클라이언트 컴퓨팅 디바이스(104) 사이의 통신 세션을 설정하는 것에 응답하여, 데이터 프로세싱 시스템(102) 또는 서드 파티 챗봇 제공자 디바이스(108)는 네트워크(105)를 통해 데이터 패킷을 클라이언트 컴퓨팅 디바이스(104)에게로 직접 전송할 수 있다. 일부 경우에, 서드 파티 챗봇 제공자 디바이스(108)는 데이터 프로세싱 시스템(102) 및 네트워크(105)를 통해 데이터 패킷을 클라이언트 컴퓨팅 디바이스(104)에 전송할 수 있다.
챗봇 제공자 디바이스(108) 또는 데이터 프로세싱 시스템(102)은 챗봇 제공자 NLP 컴포넌트(142)의 적어도 일부를 실행할 수 있다. 예를 들어, 서드 파티 챗봇 제공자 디바이스(108)는 통신 세션의 특정 양태 또는 쿼리의 유형을 처리할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 데이터 프로세싱 시스템(102)에 의해 실행된 NLP 컴포넌트(112)를 이용하여, 통신 세션과 연관된 오디오 신호를 프로세싱하고 쿼리에 대한 응답을 생성할 수 있다. 일부 경우에, 데이터 프로세싱 시스템(102)은 서드 파티 챗봇 디바이스(108)를 위해 구성된 대화형 API(142)를 포함할 수 있다. 일부 경우에, 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스와 서드 파티 제공자 디바이스(108) 사이에서 데이터 패킷을 라우팅하여 통신 세션을 설정한다. 데이터 프로세싱 시스템(102)은 서드 파티 디바이스가 클라이언트 디바이스(104)와의 통신 세션을 설정했다는 표시를 서드 파티 챗봇 디바이스(108)으로부터 수신할 수 있다. 상기 표시는 클라이언트 컴퓨팅 디바이스(104)의 식별자, 통신 세션이 설정된 시간에 대응하는 타임스탬프 또는 통신 세션과 연관된 데이터 구조와 같은 통신 세션과 연관된 다른 정보를 포함할 수 있다.
챗봇 제공자 NLP 컴포넌트(142)는 제1 NLP(112)의 하나 이상의 컴포넌트 또는 기능을 포함하는 제2 NLP일 수 있다. 챗봇 제공자 NLP 컴포넌트(142)는 제1 NLP(112)와 인터렉션하거나 활용할 수 있다. 일부 경우에, 시스템(100)은 데이터 프로세싱 시스템(102)에 의해 실행되는 단일 NLP(112)를 포함할 수 있다. 단일 NLP(112)는 데이터 프로세싱 시스템(102) 및 챗봇 모두를 지원할 수 있다. 일부 경우에, 인터페이스(110)는 서비스 수행을 용이하게 하기 위해 데이터 구조를 생성 또는 구성하고, 대화형 API는 최종 사용자와의 통신 세션에 추가로 응답 또는 쿼리를 생성하거나 최종 사용자의 경험 또는 서비스의 성능을 개선 또는 향상시키기 위한 추가 정보를 획득한다.
챗봇을 포함하는 컴퓨터 프로그램은 데이터 프로세싱 시스템(102), 챗봇 제공자 디바이스(108) 또는 컴퓨팅 디바이스(104) 상에서 실행될 수 있다. 챗봇은 응답을 결정하기 위해 하나 이상의 디지털 파일 또는 하나 이상의 디지털 파일의 일부를 수신 및 프로세싱할 수 있다. 예를 들어, 챗봇은 데이터 프로세싱 시스템(102)에서 챗봇 컴포넌트(114)로서 실행될 수 있다.
챗봇은 실행시 입력 쿼리를 식별할 수 있다. 데이터 프로세싱 시스템(102)은 챗봇을 호출, 실행 또는 시작하고, 컴퓨팅 디바이스(104)로부터의 입력 오디오 신호에 기초하여 수신되거나 결정된 쿼리를 입력할 수 있다. 예를 들어, 컴퓨팅 디바이스(104)로부터 데이터 프로세싱 시스템(102)에 의해 수신된 데이터 패킷들은 애플리케이션 식별자 및 쿼리를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 (예를 들어, 챗봇 컴포넌트(114)를 통해) 애플리케이션 식별자에 대응하는 챗봇을 호출한 다음, 쿼리 "근처에 좋은 음식점"을 입력할 수 있다. 챗봇 컴포넌트(114)는 검색을 수행하고 하나 이상의 응답들을 생성하기 위해 챗봇에 입력되거나 서드 파티 챗봇 제공자 디바이스(108)에 제공될 제2 쿼리를 생성할 수 있다.
챗봇 컴포넌트(114)는 입력 오디오 신호의 입력 쿼리에 기초하여 제2 쿼리를 생성할 수 있다. 제2 쿼리는 서드 파티 챗봇 제공자 디바이스(108)에 전송될 수 있다. 제2 쿼리는 서드 파티 챗봇 제공자 디바이스(108)에 의한 프로세싱을 용이하게 하기 위해 포맷팅될 수 있다. 제2 쿼리는 입력 오디오 신호에서 수신된 제1 쿼리에 대한 상이한 정보를 포함할 수 있다. 제2 쿼리는 제1 쿼리에 대한 추가 정보, 또는 제1 쿼리에 대한 더 적은 정보를 포함할 수 있다. 챗봇 컴포넌트(112)는 서드 파티 챗봇 제공자 디바이스(108)가 수행할 필요가 있는 프로세싱량을 감소시키기 위해 입력 쿼리에 대해 초기 프로세싱 또는 프리-프로세싱을 수행할 수 있다. 챗봇 컴포넌트(112)는 서드 파티 챗봇 제공자 디바이스(108), 데이터 프로세싱 시스템(102) 및 컴퓨팅 디바이스(104) 사이의 원격 프로시저 호출 수를 감소시키기 위해 입력 쿼리에 대한 초기 프로세싱 또는 프리 프로세싱을 수행할 수 있다.
예를 들어, 컴퓨팅 디바이스(104)로부터의 입력 오디오 신호에서 수신된 입력 쿼리는 "푸드봇, 근처에 좋은 음식점 제안해줘"일 수 있다. 챗봇 컴포넌트(114)는 "근처"라는 용어에 기초하여 입력 쿼리의 위치 컴포넌트가 있다고 결정할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)로 하여금 데이터 프로세싱 시스템(102) 또는 컴퓨팅 디바이스(104)에 위치 정보를 질의하게 하는 쿼리를 있는 그대로 서드 파티 챗봇 제공자 디바이스(108)에 전달하지 않고, 챗봇 컴포넌트(114)는 제2 쿼리를 구성하고 상기 컴퓨팅 디바이스(104)에 대응하는 위치 정보를 입력한다. 데이터 프로세싱 시스템(102)(예를 들어, 챗봇 컴포넌트(114)를 통해)은 컴퓨팅 디바이스(104)의 위치를 결정할 수 있다. 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)의 프로필에서 설정된 위치 선호를 결정할 수 있다. 위치 선호는 예를 들어, 위치의 전송을 차단하는 것 또는 전송하기 위한 허용되는 위치 해상도를 포함할 수 있다(예를 들어, 주소, 반경 100미터, 200미터, 300미터, 500미터, 1000미터, 1마일, 우편번호, 도시, 타운 또는 카운티). 위치 선호에 기초하여, 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)의 현재 위치를 식별하고, 다음과 같이 위치 정보를 포함하도록 제2 쿼리를 구성할 수 있다: "미국 애니 타운 123 Main Street 근처의 좋은 음식점 식별". 따라서, 누락된 정보를 식별하기 위해 입력 쿼리를 프로-프로세싱한 다음, 누락된 정보를 결정하고, 결정된 정보를 포함하는 제2 쿼리를 생성함으로써, 데이터 프로세싱 시스템(102)은 서드 파티 챗 제공자 디바이스(108)에 의해 수행되는 초과 원격 프로시저 호출을 감소시킴으로써 전체 시스템 효율을 향상시킬 수 있고, 그에 따라 컴퓨팅 리소스 활용 또는 컴퓨팅 디바이스(104)의 배터리 소비를 감소시킨다.
챗봇 컴포넌트(114)는 생성된 제2 쿼리를 서드 파티 챗봇 제공자 디바이스(108)에 제공할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 자연어 프로세싱 기법, 검색 엔진 기법, 패턴 매칭 기법 또는 의미론 분석 기법을 사용하여, 쿼리에 응답하는 하나 이상의 응답들을 식별할 수 있다. 예를 들어, 챗봇은 쿼리를 사용하여 검색을 수행한 다음 검색 결과를 포함하는 응답들을 생성할 수 있다.
서드 파티 챗봇 제공자 디바이스(108)는 챗봇 컴포넌트(114)에 의해 제공된 제2 쿼리를 사용하여 검색을 실행하거나 수행할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 서드 파티 챗봇 제공자 디바이스(108)의 내부 또는 외부의 하나 이상의 데이터베이스에 액세스할 수 있다. 일부 경우에, 서드 파티 챗봇 제공자 디바이스(108)는 검색을 수행하기 위해 데이터 프로세싱 시스템(102)의 하나 이상의 컴포넌트, 기능, 리소스 또는 데이터베이스를 이용할 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 제2 쿼리에 대한 복수의 응답들을 식별할 수 있다. 복수의 응답들은 검색 결과를 포함할 수 있다. 복수의 응답들은 예를 들어 제2 쿼리에 의해 정의된 검색 기준을 만족시키는 음식점의 리스트를 포함할 수 있다. 예를 들어, 음식점 리스트는 컴퓨팅 디바이스(104)의 현재 위치의 반경 내에 있고 음식점의 등급이 별 4개 이상인 "좋은" 음식점을 포함할 수 있다.
데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)에 디스플레이하기 전에 그리고 챗봇 애플리케이션(또는 챗봇 애플리케이션을 적어도 부분적으로 실행하거나 제2 쿼리에 대한 응답들을 생성하는 서드 파티 챗봇 제공자 디바이스(108))으로부터 제2 쿼리에 대한 하나 이상의 응답들을 획득하기 위해 후킹 컴포넌트(116)를 포함, 실행 또는 이와 통신할 수 있다. 데이터 프로세싱 시스템(102)이 제2 쿼리에 대한 응답들을 식별하기 위해 챗봇 애플리케이션을 실행하는 경우, 후킹 컴포넌트(116)는 챗봇 애플리케이션이 응답을 컴퓨팅 디바이스(104)에 전송하기 전에 응답을 획득할 수 있다. 일부 경우에, 응답이 디스플레이를 위해 챗봇 애플리케이션 또는 컴퓨팅 디바이스(104)를 향하도록 의도될 수 있기 때문에, 후킹 컴포넌트(116)는 서드 파티 채팅 제공자 디바이스(108)로부터의 응답을 인터셉트할 수 있다. 인터셉팅은 후킹 컴포넌트(116)가 응답을 획득하고 이를 챗봇 컴포넌트(114) 또는 디스플레이를 위한 컴퓨팅 디바이스(104)가 아닌 콘텐츠 선택 컴포넌트(118)로 전달하는 것을 지칭할 수 있다.
챗봇 애플리케이션은 데이터 프로세싱 시스템(102), 챗봇 컴포넌트(114) 또는 서드 파티 챗봇 제공자 디바이스(108) 중 적어도 하나에서 실행함으로써 제2 쿼리에 대한 응답들을 생성할 수 있다. 제2 쿼리에 대한 응답을 생성 또는 식별할 때, 챗봇 애플리케이션(데이터 프로세싱 시스템(102), 서드 파티 챗봇 제공자 디바이스(108) 또는 컴퓨팅 디바이스(104) 중 하나 이상에서 적어도 부분적으로 실행되는지 여부)은 컴퓨팅 디바이스(104)의 디스플레이(132)를 통해 제시하기 위해 응답들을 전송하거나 제공할 수 있다. 그러나, 디스플레이에 결과를 제시하기 전에, 후킹 컴포넌트(116)는 제2 쿼리에 대한 응답들을 획득하거나 인터셉트할 수 있다. 후킹 컴포넌트(116)는 데이터 프로세싱 시스템(102), 서드 파티 챗봇 제공자 디바이스(108) 또는 컴퓨팅 디바이스(104)의 컴포넌트로부터 응답들을 획득하거나 인터셉트할 수 있다.
시스템(100)은 응답이 컴퓨팅 디바이스(104) 상에 디스플레이를 위해 제공되기 전에, 제2 쿼리에 대한 응답들을 획득하거나 인터셉트하기 위해 데이터 프로세싱 시스템(102) 또는 클라이언트 컴퓨팅 디바이스(104) 중 하나 이상에서 실행되는 후킹 컴포넌트(118)를 포함할 수 있다. 후킹 컴포넌트(114)는 응답들을 획득하거나 인터셉트하고, 상기 응답들을 출력 병합 컴포넌트(120)로 재-지향할 수 있다.
후킹 컴포넌트(116)는 데이터 프로세싱 시스템(102)의 컴포넌트들 사이에서, 데이터 프로세싱 시스템(102)과 컴퓨팅 디바이스(104) 사이에서, 데이터 프로세싱 시스템(102)와 서드 파티 제공자 디바이스(108) 사이에서 또는 서드 파티 제공자 디바이스(108)와 컴퓨팅 디바이스(104) 사이에서 전달된 기능 호출, 응답들, 디지털 컴포넌트들, 메시지들 또는 이벤트들을 인터셉트하도록 설계된 후킹 기법들을 사용하여 제2 쿼리에 대한 응답들을 획득하거나 인터셉트할 수 있다. 후킹 컴포넌트(116)는 챗봇 애플리케이션의 실행시 응답을 인터셉트하도록 구성된 이벤트 후크를 삽입할 수 있다. 일부 구현예에서, 후킹 컴포넌트(118)는 예를 들어 데이터를 스택의 애플리케이션 레이어로 전달하기 전에 네트워크 스택 내에서 실행될 수 있다. 다른 구현예에서, 후킹 컴포넌트(118)는 운영 체제의 커널 레벨, 사용자 레벨 내에서 실행될 수 있거나, 하나 이상의 가상 머신과 독립적으로 하이퍼바이저에 의해 실행될 수 있다.
예를 들어, 데이터 프로세싱 시스템(102) 또는 컴퓨팅 디바이스(104)상에서 실행되는 후킹 컴포넌트(118)는 챗봇 애플리케이션 또는 서드 파티 챗봇 제공자 디바이스(108)를 통해 제공된 응답들을 획득하거나 인터셉트하여, 상기 응답들을 콘텐츠 선택 컴포넌트(118)에 전달할 수 있다. 후킹 컴포넌트는 응답들을 콘텐츠 선택 컴포넌트(118)로 재-라우팅 또는 재-지향하도록 구성될 수 있다. 인터셉트는 응답들이 샌드 박스 미디어 환경에 대한 메모리 또는 버퍼에 기록된 후 그러나 샌드 박스 미디어 환경의 프로세싱 스레드가 디지털 컴포넌트를 판독하기 전 등에 네트워크 스택에서와 같이(예를 들어, 애플리케이션 계층에서 또는 그 아래에서) 프로세싱의 임의의 편리하거나 적절한 부분에서 발생할 수 있다.
데이터 프로세싱 시스템(102)은 챗봇 애플리케이션으로부터 제2 쿼리에 대한 응답들을 수신하고 디지털 컴포넌트를 선택하기 위해 콘텐츠 선택 컴포넌트(118)를 포함, 실행 또는 이와 통신할 수 있다. 콘텐츠 선택 컴포넌트(118)는 챗봇 애플리케이션으로부터 수신된 응답들을 파싱하고 키워드를 생성할 수 있다. 콘텐츠 선택 컴포넌트(118)는 후킹 컴포넌트(116)에 의해 인터셉트된 응답들에 기초하여 생성된 키워드로 실시간 콘텐츠 선택 프로세스를 실행할 수 있다. 콘텐츠 선택 컴포넌트(118)는 실시간 콘텐츠 선택 프로세스를 사용하여 디지털 컴포넌트를 식별할 수 있다. 디지털 컴포넌트는 콘텐츠 제공자 디바이스(106)에 의해 제공될 수 있다.
콘텐츠 선택 컴포넌트(118)는 챗봇 컴포넌트(118)로부터의 응답들에 기초하여 하나 이상의 키워드들을 생성할 수 있다. 콘텐츠 선택 컴포넌트(118)는 하나 이상의 키워드들을 식별하기 위해 응답들을 파싱할 수 있다. 콘텐츠 선택 컴포넌트(118)는 시맨틱 분석 기법, 기계 학습 모델, 패턴 매칭 기법 또는 다른 키워드 생성 기법을 사용하여 하나 이상의 키워드들을 식별하거나 생성할 수 있다. 콘텐츠 선택 컴포넌트(118)는 키워드를 생성하기 위해 응답들과 연관된 토픽 버티칼, 개념, 카테고리, 상품, 서비스 또는 엔터티를 식별할 수 있다. 예를 들어,"근처 좋은 음식점"이라는 쿼리에 대한 응답에는 다음 세 가지 결과가 포함될 수 있다. I) 음식점 A, ii) 음식점 B 및 iii) 음식점 C. 결과들은 각 음식점에서 제공되는 음식 유형에 대한 설명이 포함될 수 있다. 음식 유형에는 음식점 A에서 햄버거 및 감자 튀김, 음식점 B의 피자 및 파스타, 음식점 C의 팬케이크 및 와플이 포함될 수 있다. 컨텐츠 선택 컴포넌트(118)는 이러한 결과를 파싱하여 햄버거, 감자 튀김, 피자, 파스타, 팬케이크 및 와플과 같은 키워드를 생성할 수 있다. 콘텐츠 선택 컴포넌트(118)는 이러한 자동 생성 키워드들을 실시간 콘텐츠 선택 프로세스에 입력하여 스폰서 디지털 컴포넌트를 선택할 수 있다.
콘텐츠 선택 프로세스는 서드 파티 콘텐츠 제공자(106)에 의해 제공되는 후원 디지털 컴포넌트 오브젝트를 선택하는 것을 참조하거나 포함할 수 있다. 실시간 콘텐츠 선택 프로세스는 컴퓨팅 디바이스(104)에 제공할 하나 이상의 디지털 컴포넌트를 선택하기 위해 다수의 콘텐츠 제공자에 의해 제공되는 디지털 컴포넌트가 파싱, 프로세싱, 가중화 또는 매칭되는 서비스를 포함할 수 있다. 콘텐츠 선택 컴포넌트(118)는 콘텐츠 선택 프로세스를 실시간으로 수행할 수 있다. 콘텐츠 선택 프로세스를 실시간으로 수행하는 것은 클라이언트 컴퓨팅 디바이스(104)를 통해 수신된 콘텐츠에 대한 요청에 응답하여 콘텐츠 선택 프로세스를 수행하는 것을 지칭할 수 있다. 실시간 콘텐츠 선택 프로세스는 요청을 수신하는 시간 간격(예를 들어, 5초, 10초, 20초, 30초, 1분, 2분, 3분, 5분, 10분 또는 20분) 내에 수행(예를 들어, 개시 또는 완료)될 수 있다. 실시간 콘텐츠 선택 프로세스는 클라이언트 컴퓨팅 디바이스(104)와의 통신 세션 동안 또는 통신 세션이 종료된 후 시간 간격 내에 수행될 수 있다.
예를 들어, 데이터 프로세싱 시스템(102)은 디지털 컴포넌트 오브젝트를 선택하도록 설계, 구성 또는 동작하는 콘텐츠 선택 컴포넌트(118)를 포함할 수 있다. 콘텐츠 선택 컴포넌트(118)는 이미지 프로세싱 기법, 문자 인식 기법, 자연어 프로세싱 기법 또는 데이터베이스 조회를 사용하여 후보 디지털 컴포넌트의 음성, 오디오, 용어, 문자, 텍스트, 기호 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 디지털 컴포넌트는 후보 디지털 컴포넌트의 주제를 표시하는 메타데이터를 포함할 수 있고, 이 경우 콘텐츠 선택 컴포넌트(118)는 메타데이터를 프로세싱하여 후보 디지털 컴포넌트의 주제가 입력 오디오 신호에 대응하는지 여부를 결정할 수 있다.
콘텐츠 제공자(106)는 디지털 컴포넌트를 포함하는 콘텐츠 캠페인을 설정할 때 추가적인 표시자들을 제공할 수 있다. 콘텐츠 제공자 컴퓨팅 디바이스(106)는 후보 디지털 컴포넌트에 관한 정보를 사용하여 조회를 수행함으로써 콘텐츠 선택 컴포넌트(118)가 식별할 수 있는 콘텐츠 캠페인 또는 콘텐츠 그룹 레벨에서 정보를 제공할 수 있다. 예를 들어, 후보 디지털 컴포넌트는 콘텐츠 그룹, 콘텐츠 캠페인 또는 콘텐츠 제공자에 맵핑될 수 있는 고유 식별자를 포함할 수 있다. 콘텐츠 선택기 컴포넌트(118)는 데이터 저장소(122)의 콘텐츠 캠페인 데이터 구조에 저장된 정보에 기초하여, 콘텐츠 제공자 컴퓨팅 디바이스(106)에 관한 정보를 결정할 수 있다.
데이터 프로세싱 시스템(102)은 채팅 애플리케이션으로부터 제2 쿼리에 대한 응답들을 인터셉트하는 것에 응답하여 콘텐츠에 대한 요청을 자동으로 생성할 수 있다. 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)를 통해 제공하기 위한 콘텐츠에 대한 요청을 수신할 수 있다. 요청은 디바이스 유형, 위치 및 요청과 연관된 키워드와 같은 요청의 선택 기준을 포함할 수 있다.
요청에 응답하여, 데이터 프로세싱 시스템(102)은 데이터 저장소(122) 또는 콘텐츠 제공자 컴퓨팅 디바이스(106)와 연관된 데이터베이스로부터 디지털 컴포넌트 오브젝트를 선택하고, 네트워크(105)를 통해 컴퓨팅 디바이스(104)를 통해 제시하기 위해 디지털 컴포넌트를 제공할 수 있다. 디지털 컴포넌트 오브젝트는 챗봇 제공자 디바이스(108)와 다른 콘텐츠 제공자 디바이스(108)에 의해 제공될 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트 오브젝트와 인터렉션할 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트에 대한 오디오 응답을 수신할 수 있다. 컴퓨팅 디바이스(104)는 디지털 컴포넌트 오브젝트와 연관된 하이퍼링크 또는 다른 버튼을 선택하기 위한 표시를 수신하여, 컴퓨팅 디바이스(104)로 하여금 콘텐츠 제공자 컴퓨팅 디바이스(106)을 식별하고, 콘텐츠 제공자 컴퓨팅 디바이스(106)로부터 서비스를 요청하고, 콘텐츠 제공자 컴퓨팅 디바이스(106)에 지시하여 서비스를 수행하고, 정보를 콘텐츠 제공자 컴퓨팅 디바이스(106)에 전송하고 또는 이와 달리 콘텐츠 제공자 컴퓨팅 디바이스(106)와 연관된 상품 또는 서비스를 식별하게 한다.
콘텐츠에 대한 요청은 콘텐츠의 포맷, 키워드, 개념, 프로필 정보, 또는 콘텐츠 선택을 용이하게 할 수 있는 다른 정보와 같은 콘텐츠 선택 기준을 포함할 수 있다. 콘텐츠 선택 컴포넌트(118)는 실시간 콘텐츠 선택 프로세스를 수행할 수 있다. 실시간 콘텐츠 선택은 콘텐츠 요청에 응답하여 콘텐츠 선택을 수행하는 것을 지칭할 수 있다. 콘텐츠에 대한 요청은 챗봇이 음성 입력에 대한 응답인 대화 데이터 구조를 식별한 후에 생성, 전송 또는 제공될 수 있다.
콘텐츠 선택 컴포넌트(118)는 텍스트-음성 시스템에 의해 프로세싱될 수 있거나 또는 디스플레이를 통해 제시가능한 텍스트, 문자열 또는 문자를 포함하는 디지털 컴포넌트를 선택할 수 있다. 콘텐츠 선택 컴포넌트(118)는 파라미터에 의해 구동되는 텍스트-음성 기법을 위해 구성된 파라미터화된 포맷인 디지털 컴포넌트를 선택할 수 있다. 일부 경우에, 대화 데이터 구조는 SSML 포맷이거나 음성 파라미터들로 구성될 수 있다. 데이터 프로세싱 시스템(102)은 챗봇에 의해 식별된 대화 데이터 구조의 음성 파라미터들과 매칭시키기 위해 디지털 컴포넌트의 음성 파라미터들을 구성하여, 디지털 컴포넌트가 컴퓨팅 디바이스(104)의 사용자에게 네이티브 음성, 이미지 또는 음향 지문이 제시되도록 한다(예: 디지털 컴포넌트가 디지털 컴포넌트가 없는 대화 데이터 구조와 비교할 때 동일하거나 유사한 음향 속성을 가짐).
콘텐츠 선택 컴포넌트(118)는 오디오 파일 포맷인 디지털 컴포넌트 대신 텍스트-음성으로 구성된 파라미터화된 포맷인 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 이미 오디오 파일 포맷으로 되어 있는 디지털 컴포넌트가 챗봇 컴퓨터 프로그램에 의해 식별된 대화 데이터 구조의 플레이스홀더 필드로의 매끄러운 삽입을 위해 구성되지 않았기 때문에, 콘텐츠 선택 컴포넌트(118)는 .WAV, .AIFF 또는 .AU와 같은 오디오 파일 포맷 또는 오디오 코딩 포맷의 디지털 컴포넌트를 선택하지 않을 수 있다. 오디오 파일 포맷의 디지털 컴포넌트는 컴퓨팅 디바이스의 네이티브 음성 또는 챗봇에 대해 설정된 음향 지문과 비교하여 상이한 음향 지문을 가질 수 있다. 디지털 컴포넌트 오디오 파일이 챗봇 또는 대화 데이터 구조의 네이티브 음성 또는 음향 지문과 비교하여 상이한 음향 지문을 갖는 경우(예를 들어, 단어가 다른 속도, 다른 주파수, 다른 피치, 다른 톤, 다른 음량 또는 다른 악센트로 발화됨), 디지털 컴포넌트 오디오 파일을 대화 데이터 구조의 플레이스홀더 필드에 삽입하거나 통합하는 것은 매끄럽거나 부드럽거나 연속적이지 않을 수 있다. 예를 들어, 상이한 음향 지문을 갖는 디지털 컴포넌트 오디오 파일은 어색한 전이 또는 불일치의 표시를 야기할 수 있다. 따라서, 챗봇 또는 컴퓨팅 디바이스가 챗봇 또는 컴퓨팅 디바이스의 음향 지문 또는 네이티브 음성에 대응하는 방식으로 디지털 컴포넌트를 재생할 수 있는 텍스트-음성 변환 기법을 위해 구성된 디지털 컴포넌트를 제공함으로써, 데이터 프로세싱 시스템(102)은 챗봇 컴퓨터 프로그램 출력의 원활한 수정을 제공하는 것을 용이하게 할 수 있다.
콘텐츠 선택 컴포넌트(118)는 디스플레이 디바이스(132)를 통해 디스플레이하도록 구성된 포맷인 디지털 컴포넌트를 선택할 수 있다. 콘텐츠 선택 컴포넌트(118)는 챗봇 애플리케이션의 네이티브 출력 포맷과 매칭되도록 재-포맷팅될 수 있는 디지털 컴포넌트를 선택할 수 있다.
콘텐츠 선택 컴포넌트(118)는 실시간 콘텐츠 선택 프로세스를 통해 다수의 디지털 컴포넌트를 선택할 수 있다. 콘텐츠 선택 컴포넌트(118)는 디지털 컴포넌트를 스코어링하고 순위를 매길 수 있고, 출력 병합 컴포넌트(120)가 최고 순위의 디지털 컴포넌트를 선택하게 하도록 다수의 디지털 컴포넌트를 출력 병합 컴포넌트(120)에 제공할 수 있다.
콘텐츠 선택 컴포넌트(118)는 선택된 디지털 컴포넌트를 출력 병합 컴포넌트(120)에 제공할 수 있다. 데이터 프로세싱 시스템(102)은 컴퓨팅 디바이스(104)를 통한 제시를 위해 선택된 디지털 컴포넌트를 챗봇 애플리케이션으로부터 수신된 응답들과 결합하거나 통합하기 위해 출력 병합 컴포넌트(120)를 포함, 실행 또는 이와 통신할 수 있다. 출력 병합 컴포넌트(120)는 결합된 디지털 컴포넌트 및 오디오 출력 또는 시각적 출력을 통한 제시를 위한 응답들을 제공할 수 있다.
중복 엔트리를 감소시키고, 이에 따라 컴퓨팅 디바이스(104)에 의한 네트워크 대역폭 이용 또는 프로세서 이용을 방지 또는 감소시키기 위해, 출력 병합 컴포넌트(120)는 디지털 컴포넌트 및 챗봇 애플리케이션에 의해 생성된 복수의 응답들로 중복 제거 프로세스를 실행할 수 있다. 중복 제거는 컴퓨터 데이터에서 중복 또는 중복 엔트리를 삭제하거나 제거하는 것을 지칭할 수 있다. 중복 제거 기법은 단 하나의 고유한 데이터 인스턴스만 출력에 유지되는 것을 보장한다. 중복 데이터 엔트리를 새 데이터 엔트리로 교체할 수 있다.
예를 들어, 콘텐츠 선택 컴포넌트(118)에 의해 선택된 디지털 컴포넌트는 음식점 A에 대한 디지털 컴포넌트를 포함할 수 있으며, 이는 또한 제2 쿼리에 응답하여 챗봇 애플리케이션에 의해 생성된 응답 중 하나이다. 이 예에서, 출력 병합 컴포넌트(120)는 디지털 컴포넌트를 삭제 또는 제거하고 제2 디지털 컴포넌트(예를 들어, 실시간 콘텐츠 선택 프로세스로부터 출력된 제2 순위 디지털 컴포넌트)를 선택할 수 있다. 따라서, 중복 제거 프로세스 결과에 기초하여, 데이터 프로세싱 시스템(102)은 추가 디지털 컴포넌트를 요청하거나, 디지털 컴포넌트의 삽입을 차단하거나 또는 디지털 엔트리가 중복 엔트리가 아닌 경우 이를 추가하기로 결정할 수 있다.
출력 병합 컴포넌트(120)는 디지털 컴포넌트로 실행된 중복 제거 프로세스 및 챗봇 애플리케이션에 의한 복수의 응답들에 응답하여, 디지털 컴포넌트를 응답들에 추가할 것을 결정할 수 있다. 출력 병합 컴포넌트(120)는 디지털 컴포넌트가 고유하거나 응답들과 상이하다는 것을 결정할 수 있다. 그 다음, 출력 병합 컴포넌트(120)는 디지털 컴포넌트 및 챗봇 애플리케이션으로부터의 응답을 포함하는 디스플레이 출력을 구성할 수 있다.
그래픽 사용자 인터페이스를 통한 디스플레이 출력의 렌더링을 관리하고, 디지털 컴포넌트 및 결과를 전송할 때 네트워크 대역폭 이용뿐만 아니라 그래픽 프로세서 이용률, CPU 이용률 또는 메모리 이용률을 감소시키기 위해, 출력 병합 컴포넌트(120)는 통합된 그래픽 레이아웃을 사용하여 디스플레이를 구성할 수 있다. 예를 들어, 응답들에 대한 제1 그래픽 테마 및 다른 레이아웃, 스타일, 컬러, 그래픽을 필요로 하는 디지털 컴포넌트에 대한 제2 다른 그래픽 테마를 사용하는 대신, 출력 병합 컴포넌트(120)는 병합된 데이터 세트에 대한 단일의 통합된 그래픽 테마 및 레이아웃을 사용할 것을 결정할 수 있다.
디스플레이 출력을 구성하기 위해, 출력 병합 컴포넌트(120)는 데이터 저장소(122)에 저장된 템플릿 데이터 구조(124)로부터 그래픽 사용자 인터페이스 템플릿을 검색할 수 있다. 그래픽 사용자 인터페이스 템플릿은 출력 병합 컴포넌트(120)가 디스플레이 출력을 생성하기 위해 사용할 수 있는 폰트, 색상 및 레이아웃을 정의, 제공, 설정 또는 표시할 수 있다. 출력 병합 컴포넌트(120)는 챗봇 애플리케이션의 애플리케이션 식별자에 기초하여 그래픽 사용자 인터페이스 템플릿을 선택할 수 있다. 예를 들어, 각 애플리케이션 식별자(예를 들어, 각각의 챗봇 애플리케이션)는 그래픽 사용자 인터페이스 템플릿으로 설정될 수 있다. 서드 파티 챗봇 제공자 디바이스(108)는 그래픽 사용자 인터페이스 템플릿을 설정, 구성, 확립 또는 설계할 수 있다. 그래픽 사용자 인터페이스 템플릿은 텍스트 글꼴, 색상, 레이아웃 또는 기타 그래픽 사용자 인터페이스 또는 디스플레이 엘리먼트를 포함할 수 있다. 일부 경우에, 그래픽 사용자 인터페이스 템플릿은 애니메이션, 투명도, 위치, 크기 또는 사운드를 포함하거나 정의할 수 있다.
출력 병합 컴포넌트(120)는 템플릿 데이터 구조(124)에서 조회를 수행함으로써 템플릿 데이터 구조로부터 그래픽 사용자 템플릿을 검색할 수 있다. 템플릿 데이터 구조(124)는 그래픽 사용자 인터페이스 템플릿을 색인 데이터 구조에 저장할 수 있다. 일부 경우에, 컴퓨팅 디바이스(104)는 컴퓨팅 디바이스(104)를 위한 맞춤형 그래픽 사용자 인터페이스를 설정할 수 있으며, 이는 선호 테마, 레이아웃, 응답들의 수 또는 폰트를 포함할 수 있다. 출력 병합 컴포넌트(120)는 애플리케이션 식별자 및 컴퓨팅 디바이스(104)의 식별자로부터 형성된 튜플을 생성할 수 있고, 튜플을 사용하여 템플릿 데이터 구조(124)에서 조회를 수행하여 특정 챗봇 애플리케이션에 대해 설정되고 컴퓨팅 디바이스(104)오 함께 사용하도록 맞춤화된 그래픽 사용자 인터페이스 템플릿을 검색할 수 있다.
일부 경우에, 출력 병합 컴포넌트(120)는 서드 파티 챗봇 제공자 디바이스(108)로부터 그래픽 사용자 인터페이스 템플릿을 요청할 수 있다. 예를 들어, 출력 병합 컴포넌트(120)는 템플릿 데이터 구조(124)가 챗봇의 애플리케이션 식별자에 대응하는 그래픽 사용자 템플릿을 포함하지 않거나, 저장된 그래픽 사용자 템플릿이 만료되었거나, 오래되었거나, 경과되었다고 결정할 수 있다. 출력 병합 컴포넌트(120)는 애플리케이션 식별자에 대응하는 요청을 서드 파티 채팅 제공자 디바이스(108)로 전송한 다음, 요청에 응답하여, 디스플레이 출력을 구성하기 위해 사용하는 그래픽 사용자 인터페이스 템플릿을 수신할 수 있다. 그 다음, 출력 병합 컴포넌트(120)는 수신된 그래픽 사용자 인터페이스 템플릿으로 데이터 저장소(122)의 템플릿 데이터 구조(124)를 업데이트하고, 이를 사용하여 후속 디스플레이 출력을 구성할 수 있다.
출력 병합 컴포넌트(120)는 챗봇 애플리케이션으로부터 수신된 응답들 중에서 디지털 컴포넌트를 삽입 또는 배치할 포지션을 선택할 수 있다. 챗봇 애플리케이션의 그래픽 사용자 인터페이스 템플릿은 디지털 컴포넌트를 삽입할 포지션을 표시할 수 있다. 그래픽 사용자 인터페이스 템플릿은 디지털 컴포넌트를 응답들의 리스트에 추가하도록 표시할 수 있다. 그래픽 사용자 인터페이스 템플릿은 응답들의 리스트 이전, 또는 응답들의 리스트 중(예를 들어, 제1 응답 후, 제2 응답 후 또는 제3 응답 후)에 디지털 컴포넌트를 추가하는 것을 표시할 수 있다. 그래픽 사용자 인터페이스 템플릿은 응답들 및 디지털 컴포넌트가 챗봇 애플리케이션과 같은 동일한 소스에 의해 제공된다는 외향을 제공하기 위해 디지털 컴포넌트가 응답들과 균일하거나 유사하게 보이도록 하는 포지션에 디지털 컴포넌트를 추가할 것을 표시할 수 있다.
일부 경우에, 출력 병합 컴포넌트(120)는 포지션을 동적으로 선택할 수 있다. 예를 들어, 출력 병합 컴포넌트(120)는 디지털 컴포넌트와의 이력 인터렉션들을 사용하여 성능 정보에 기초하여 포지션을 결정할 수 있다. 출력 병합 컴포넌트(120)는 기계 학습 모델을 사용하여, 디지털 컴포넌트를 삽입할 곳을 결정할 수 있다. 기계 학습 모델은 챗봇 애플리케이션의 복수의 인스턴스들로부터 수집된 이력 성능 데이터로 생성될 수 있다. 성능 데이터는 클릭, 선택 또는 전환과 연관된 기능을 표시할 수 있다. 데이터 프로세싱 시스템(102)은 디지털 컴포넌트와의 인터렉션의 표시를 수신할 수 있다. 디지털 컴포넌트와의 인터렉션은 컴퓨팅 디바이스(104)의 인터페이스 또는 컴포넌트를 통해 발생할 수 있다. 데이터 프로세싱 시스템(102)은 디지털 컴포넌트와의 인터렉션 및 인터렉션에 관한 또는 그와 연관된 정보를 기록, 저장 또는 이와 달리 모니터링 및 추적할 수 있다.
기계 학습 모델은 클릭, 선택 또는 전환을 받지 않는 포지션들과 연관된 가중치를 줄이면서, 디지털 컴포넌트의 클릭, 선택 또는 전환과 연관된 포지션에 가중치를 더 많이 부여할 수 있다. 기계 학습 모델은 기계 학습 모델을 커스터마이징하여 디지털 컴포넌트를 삽입할 포지션을 결정하기 위해, 다른 유형의 디지털 컴포넌트, 주제, 키워드, 컴퓨팅 디바이스 또는 기타 파라미터들에 대해 서로 다른 모델을 생성할 수 있다.
출력 병합 컴포넌트(120)는 검색된 그래픽 사용자 인터페이스 템플릿을 사용하여 디스플레이 출력을 구성할 수 있다. 출력 병합 컴포넌트(120)는 실시간 콘텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트를 챗봇 애플리케이션에 의해 생성된 응답들과 통합함으로써 디스플레이 출력을 구성할 수 있다. 출력 병합 컴포넌트(120)는 컴퓨팅 디바이스(104)에 의해 디스플레이 출력을 렌더링하는 효율을 향상시키기 위해 그래픽 사용자 템플릿을 디지털 컴포넌트 및 응답들 둘 모두에 균일하게 적용할 수 있다. 디스플레이 출력을 구성하기 위해, 출력 병합 컴포넌트(120)는 디지털 컴포넌트의 폰트 또는 색상을 수정하여 디지털 컴포넌트를 응답과 통합할 수 있다. 출력 병합 컴포넌트(120)는 컴퓨팅 디바이스(104)로 하여금 디스플레이(132)를 통한 제시를 위해 디스플레이 출력을 렌더링하게 하도록 디스플레이 출력을 컴퓨팅 디바이스(104)에 제공할 수 있다.
컴퓨팅 디바이스(104)는 디지털 어시스턴트 디바이스를 포함, 실행 또는 참조될 수 있다. 디지털 어시스턴트 디바이스(또는 컴퓨팅 디바이스(104))는 디스플레이 디바이스(132), 그래픽 드라이버(146), 입력 오디오 신호를 검출하기 위한 센서 및 디스플레이 디바이스, 그래픽 드라이버 및 센서에 연결된 프리-프로세서 컴포넌트(140)를 포함할 수 있다. 그래픽 드라이버(146)는 데이터 프로세싱 시스템(102)으로부터 디스플레이 출력을 수신하고, 디스플레이 출력을 디스플레이 디바이스(132)에 렌더링할 수 있다. 그래픽 드라이버(146)는 그래픽 또는 시각적 출력이 디스플레이(132) 상에 디스플레이되는 방법을 제어 또는 향상시키는 하드웨어 또는 소프트웨어 컴포넌트를 포함할 수 있다. 그래픽 드라이버(146)는 예를 들어, 그래픽 컴포넌트가 나머지 컴퓨팅 디바이스(104)(또는 디지털 어시스턴트)와 어떻게 동작하는지를 제어하는 프로그램을 포함할 수 있다. 프리-프로세서 컴포넌트(140)는 입력 오디오 신호를 필터링하여 필터링된 입력 오디오 신호를 생성하고, 필터링된 입력 오디오 신호를 데이터 패킷들로 변환하고, 데이터 패킷들을 하나 이상의 프로세서들 및 메모리를 포함하는 데이터 프로세싱 시스템으로 전송한다.
디지털 어시스턴트 디바이스는 오디오 드라이버(138) 및 스피커 컴포넌트(예를 들어, 트랜스듀서(136))를 포함할 수 있다. 프리-프로세서 컴포넌트(140)는 상기 디스플레이 출력의 표시를 수신하고, 상기 오디오 드라이버(138)에 지시하여 상기 스피커 컴포넌트(예: 트랜스듀서(136))로 하여금 상기 디스플레이 출력의 표시에 대응하는 오디오 출력을 전송하게 하는 출력 오디오 신호를 생성한다. 오디오 출력은 예를 들면 도 3의 텍스트박스(312)에 도시된 텍스트의 텍스트-음성 변환 표현을 포함할 수 있다.
도 2는 그래픽 사용자 인터페이스의 렌더링을 관리하기 위한 시스템(200)의 동작을 도시한다. 시스템(200)의 동작은 도 1에 도시된 시스템(100)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 예를 들어, 시스템(200)의 동작은 데이터 프로세싱 시스템(102), 컴퓨팅 디바이스(104), 서드 파티 챗봇 제공자 디바이스(108) 또는 콘텐츠 제공자 디바이스(106)에 의해 수행될 수 있다. 동작(202)에서, 컴퓨팅 디바이스(104)는 입력 오디오 신호를 검출 또는 수신할 수 있다. 입력 오디오 신호는 최종 사용자가 말한 음성 입력을 포함할 수 있다. 입력 오디오 신호는 제1 쿼리를 포함할 수 있다. 입력 오디오 신호는 애플리케이션 식별자를 포함하거나 포함하지 않을 수 있다. 입력 오디오 신호는 쿼리를 수행할 수 있는 챗봇 애플리케이션의 식별자를 포함할 수 있다. 입력 오디오 신호는 애플리케이션 식별자를 포함하지 않을 수 있지만, 데이터 프로세싱 시스템(102)은 쿼리를 수행하기 위해 호출할 챗봇 애플리케이션을 자동으로 결정할 수 있다. 일부 경우에, 입력 오디오 신호가 애플리케이션 식별자를 포함하지 않으면, 컴퓨팅 디바이스(104) 또는 데이터 프로세싱 시스템(102)은 최종 사용자가 쿼리를 수행하는데 사용하기 위한 챗봇 애플리케이션의 표시를 제공하도록 요청하는 오디오 또는 시각적 프롬프트를 제공할 수 있다.
동작(204)에서, 컴퓨팅 디바이스(104)는 제1 쿼리를 표시하는 데이터 패킷들을 전송한다. 데이터 프로세싱 시스템(102)은 제1 쿼리를 수신할 수 있다. 데이터 프로세싱 시스템(102)의 NLP 컴포넌트(112)는 제1 쿼리 또는 애플리케이션 식별자를 식별하기 위해 데이터 패킷들을 프로세싱할 수 있다. 데이터 프로세싱 시스템(102)은 제1 쿼리를 챗봇 컴포넌트(114)에 제공하거나 제1 쿼리를 서드 파티 챗봇 제공자 서버(108)에 직접 제공할 수 있다.
동작(206)에서, 데이터 프로세싱 시스템(102)은 제1 쿼리를 챗봇 컴포넌트(114)에 제공할 수 있다. 챗봇 컴포넌트(114)는 응답을 생성하기 위해 쿼리를 실행할 수 있는 챗봇 애플리케이션에 대응하는 애플리케이션 식별자 및 쿼리를 식별할 수 있다. 챗봇 컴포넌트(114)는 제1 쿼리에 기초하여 제2 쿼리를 생성할 수 있다. 제2 쿼리는 챗봇 애플리케이션이 제1 쿼리에 대한 응답을 생성하게 하는 것을 용이하게 하는 형식일 수 있다. 제2 쿼리는 챗봇 애플리케이션이 쿼리에 대한 응답을 생성하는데 필요하지 않은 정보를 필터링할 수 있다. 챗봇 컴포넌트(14)는 제2 쿼리를 생성하기 위해 제1 쿼리에 대한 정보를 추가할 수 있다. 챗봇 컴포넌트(114)는 원격 프로시저 호출을 감소시키면서 서드 파티 챗봇 애플리케이션이 쿼리에 대한 응답을 생성하는 것을 용이하게 하기 위해 제2 쿼리를 구성하거나 생성할 수 있다. 예를 들어, 제1 쿼리는 컴퓨팅 디바이스(104)에 대한 위치 정보를 포함하지 않을 수 있지만, 위치 정보는 응답들을 생성하는데 도움이 되거나 필요할 수 있다. 챗봇 컴포넌트(114)는 제1 쿼리에서 위치 정보가 누락되었음을 검출하고, 제2 쿼리를 생성할 때 위치 정보를 포함하도록 추가로 결정할 수 있다. 챗봇 컴포넌트(114)가 제2 쿼리에 위치 정보의 부재가 챗봇 애플리케이션 또는 서드 파티 챗봇 제공자(108)로 하여금 에러를 반환하거나 위치 정보에 대한 프롬프트를 생성하게 하는 결정할 수 있기 때문에, 챗봇 컴포넌트(114)는 위치 정보를 포함하도록 결정할 수 있다. 따라서, 챗봇 애플리케이션 또는 서드 파티 챗봇 제공자(108)가 런타임 에러를 갖거나 추가 정보에 대한 후속 프롬프트를 생성하는 것을 방지하기 위해, 챗봇 컴포넌트(114)는 능동적으로 그리고 자동으로 컴퓨팅 디바이스에 대한 위치 정보를 결정하고 위치 정보를 포함하는 제2 쿼리 생성할 수 있다. 누락된 정보없이 완전한 제2 쿼리를 생성함으로써, 챗봇 컴포넌트(114)는 입력 오디오 신호에 대한 응답을 생성할 때 지연 또는 지연을 감소시킬 수 있다.
동작(208)에서, 챗봇 컴포넌트(114)는 제2 쿼리를 서드 파티 챗봇 제공자(108)에게 제공한다. 일부 경우에, NLP 컴포넌트(112) 또는 챗봇 컴포넌트(114)는 제1 쿼리를 변경, 수정 또는 달리 조정하지 않고 제1 쿼리를 서드 파티 챗봇 제공자 서버(108)로 포워딩할 수 있다. 예를 들어, 챗봇 컴포넌트(114)는 제1 쿼리가 서드 파티 챗봇 제공자(108)로 하여금 응답을 생성하게 하는 충분한 정보를 포함한다고 결정할 수 있다. 일부 경우에, 챗봇 컴포넌트(114)는 제1 쿼리를 서드 파티 챗봇 제공자(108)에 포워딩할 수 있고, 서드 파티 챗봇 제공자는 응답 식별을 용이하게 하기 위해 추가 정보에 대한 요청을 생성할 수 있다. 서드 파티 챗봇 제공자(108)는 추가 정보에 대한 요청을 챗봇 컴포넌트(114), 데이터 프로세싱 시스템(102) 또는 컴퓨팅 디바이스(104)에 직접 전송할 수 있다. 요청된 추가 정보를 수신하면, 서드 파티 챗봇 제공자(108)는 제2 쿼리를 생성하고 제1 쿼리에 대한 응답일 수 있는 제2 쿼리에 대한 응답을 식별할 수 있다.
서드 파티 챗봇 제공자 디바이스(108)는 제2 쿼리를 수행하여 응답들을 식별한 다음, 동작(210)에서 데이터 프로세싱 시스템(102)에 응답들을 제공할 수 있다. 후킹 컴포넌트(116)는 응답들을 인터셉트할 수 있다. 예를 들어, 응답들은 출력 병합 컴포넌트(122)에 또는 컴퓨팅 디바이스(104)에 직접 가도록 의도되었을 수 있다. 후킹 컴포넌트(116)는 응답들을 인터셉트한 다음 동작(212)에서 콘텐츠 선택 컴포넌트(118)에 응답들을 제공할 수 있다. 콘텐츠 선택 컴포넌트(118)는 응답들을 파싱하고, 응답들에 기초하여 하나 이상의 키워드들을 생성한 후, 하나 이상의 키워드들로 실시간 콘텐츠 선택 프로세스를 수행할 수 있다. 콘텐츠 선택 컴포넌트(118)는 동작(214)에서 선택된 하나 이상의 디지털 컴포넌트를 출력 병합 컴포넌트(122)에 제공할 수 있다. 출력 병합 컴포넌트(122)는 중복 제거 프로세스를 수행하고, 그래픽 사용자 인터페이스 템플릿을 검색하고, 디지털 컴포넌트를 서드 파티 챗봇 제공자 디바이스(108)로부터의 응답들과 결합하는 균일한 디스플레이 출력을 구성할 수 있다. 출력 병합 컴포넌트(122)는 동작(216)에서 디스플레이 출력을 컴퓨팅 디바이스(104)에 전송하거나 제공할 수 있다. 컴퓨팅 디바이스(104)는 디스플레이 디바이스(132)를 통해 디스플레이 출력을 렌더링하여, 출력을 입력 오디오 신호를 제공한 최종 사용자에게 시각적으로 제시할 수 있다.
도 3은 그래픽 사용자 인터페이스의 렌더링을 관리하기 위해 시스템에 의해 제공되는 그래픽 사용자 인터페이스의 구현예를 도시한다. 그래픽 사용자 인터페이스(300)는 도 1, 도 2 또는 도 5에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 제공될 수 있다. 사용자는 오디오 신호를 디지털 어시스턴트(306)(예를 들어, 컴퓨팅 디바이스(102)에 의해 실행되는 디지털 어시스턴트)에 입력할 수 있다. 컴퓨팅 디바이스(102)에 의해 실행되는 디지털 어시스턴트(306)에 의해 제공되는 그래픽 사용자 인터페이스(300)는 사용자를 위한 아이콘(302)을 표시할 수 있고, 다음과 같이 텍스트 박스(304)에 입력 오디오 신호의 텍스트를 시각적으로 제시할 수 있다. "푸드봇, 근처에 좋은 음식점을 제안해줘." 입력 오디오 신호는 애플리케이션 식별자 및 쿼리를 포함할 수 있다. 이 예에서 애플리케이션 식별자는 "푸드봇"일 수 있으며, 쿼리는 "근처에 좋은 음식점을 제안해줘"일 수 있다. 디지털 어시스턴트(306)는 애플리케이션 식별자를 식별할 수 있다. 디지털 어시스턴트(306)는 입력 오디오 신호를 로컬적으로 파싱하거나, 데이터 패킷들을 데이터 프로세싱 시스템(102)으로 전송한 다음, 어플리케이션 식별자의 표시와 함께 데이터 프로세싱 시스템(102)으로부터 응답을 수신함으로써 어플리케이션 식별자를 식별할 수 있다. 디지털 어시스턴트(306)는 텍스트 박스(308)에서 "푸드봇에 연결하고 있습니다"와 같은 상태 표시를 제공할 수 있다. 일부 경우에, 디지털 어시스턴트(306)는 상태의 오디오 표시를 제공할 수 있다.
데이터 프로세싱 시스템(102) 또는 디지털 어시스턴트(306)는 쿼리에 대한 응답을 획득하기 위해 서드 파티 챗봇 제공자 디바이스(108)와 인터렉션할 수 있다. 디지털 어시스턴트(306) 또는 데이터 프로세싱 시스템(102)은 수신된 쿼리를 그대로 서드 파티 챗봇 제공자 디바이스(108)로 전송하거나, 서드 파티 챗봇 제공자 디바이스(108)가 응답들을 식별하는 것을 용이하게 할 수 있는 제1 쿼리에 기초하여 제2 쿼리를 생성할 수 있다.
데이터 프로세싱 시스템(102)은 서드 파티 챗봇 제공자 디바이스(108)로부터 응답들의 표시를 수신하고, 키워드를 생성하고, 키워드로 실시간 콘텐츠 선택 프로세서를 수행하여 디지털 컴포넌트를 식별한 다음, 그래픽 사용자 인터페이스 템플릿을 사용하여 디지털 컴포넌트를 응답들과 병합한다. 데이터 프로세싱 시스템(102)은 응답들과 통합된 디지털 컴포넌트를 포함하는 디스플레이 출력을 제공할 수 있다.
디지털 어시스턴트(306)는 디스플레이 출력을 수신하고 디스플레이 출력(314)을 렌더링할 수 있다. 디지털 어시스턴트(306)는 푸드봇에 대한 아이콘(310)을 디스플레이할 수 있고, 응답들을 표시하는 텍스트 박스(312)를 포함할 수 있다. 예를 들어, 텍스트 박스(312)는 "다음의 음식점들을 제안합니다. 세 음식점 모두 별점 4+이고, 당신의 위치에서 5마일 이내에 있습니다."라고 쓴다. 이 텍스트는 입력 쿼리(304)에 대응할 수 있다. 예를 들어, "좋은" 이라는 입력 용어는 푸드봇(310)으로 하여금 별점 4개 이상의 음식점들을 식별하게 할 수 있다. "근처"라는 입력 용어는 푸드봇(310)으로 하여금 컴퓨팅 디바이스(104)의 현재 위치로부터 5마일 이내에 음식점을 식별하게 할 수 있다.
디스플레이 출력(314)은 푸드봇(310)을 위한 그래픽 사용자 인터페이스 템플릿을 사용하여 구성될 수 있다. 디스플레이 출력(314)은 서드 파티 챗봇 제공자 디바이스(108) 및 스폰서 디지털 컴포넌트로부터의 응답들을 포함할 수 있다. 그래픽 사용자 인터페이스 템플릿은 응답들 및 디지털 컴포넌트의 레이아웃, 색상 및 폰트를 정의할 수 있다. 예를 들면, 그래픽 사용자 템플릿은 i) 각 응답에 대해 별도의 행(예를 들어, 4개의 행, 각 레스토랑에 대한 하나의 행)을 갖는 단일 열을 포함하는 레이아웃; ii) 행의 좌측에 포지셔닝된 응답을 위한 아이콘(320); iii) 각 응답에 대한 두 줄의 텍스트를 정의할 수 있고, 첫 번째 텍스트 줄에는 굵게 표시되고 밑줄이 그어진 음식점 이름, 콜론이 후속하고, 음식점에서 제공되는 음식 설명이 후속하며, 두 번째 줄 텍스트는 음식점의 주소를 포함한다.
디지털 컴포넌트를 서드 파티 챗봇 서버로부터의 응답과 통합하기 위해, 데이터 프로세싱 시스템(102)은 실시간 콘텐츠 선택 프로세스를 통해 선택된 디지털 컴포넌트뿐만 아니라 챗봇에 의해 제공된 응답들에 그래픽 사용자 템플릿을 적용하여, 디스플레이 출력(314)을 생성한다. 디지털 컴포넌트를 응답들과 통합하는 것은 모양과 느낌 또는 다른 사용자 인터페이스 기능을 보존하거나 유지하는 방식으로 응답들에 디지털 컴포넌트를 추가하는 것을 지칭할 수 있다. 디지털 컴포넌트를 응답들과 통합하는 것은 모양과 느낌 또는 다른 사용자 인터페이스 기능을 보존하거나 유지하는 방식으로 응답들과 디지털 컴포넌트를 결합하는 것을 지칭할 수 있다.
데이터 프로세싱 시스템은 그래픽 사용자 인터페이스 템플릿을 사용하여 디지털 컴포넌트를 응답들과 통합할 수 있다. 그래픽 사용자 인터페이스 템플릿은 디지털 컴포넌트를 응답들에 추가하도록 표시할 수 있다. 따라서, 디스플레이 출력(314)은 i) 첫 번째 텍스트 줄에 "Burgers & Fries"라는 설명과 두 번째 줄에 주소 "123 Main Street"를 포함하는 음식점 A에 대한 첫 번째 응답 (314a); ii) 첫 번째 텍스트 줄에 "Pizza & Pasta"라는 설명과 두 번째 텍스트 줄에 주소 "456 Main street"를 포함하는 음식점 B에 대한 두 번째 응답(314b); 및 iii) 첫 번째 텍스트 줄에 "Pancakes & Waffles"라는 설명과 두 번째 텍스트 줄에 주소 "321 Main Street"를 포함하는 음식점 C에 대한 세 번째 응답(314c)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 응답(314a-c)에 사용된 것과 동일한 그래픽 사용자 인터페이스 템플릿을 사용하여 음식점 D에 대한 디지털 컴포넌트(314d)를 추가할 수 있다. 데이터 프로세싱 시스템(102)은 응답(314a-c)에 기초하여 키워드를 생성하고 키워드를 실시간 콘텐츠 선택 프로세스에 입력함으로써 음식점 D에 대한 디지털 컴포넌트를 선택할 수 있다. 데이터 프로세싱 시스템(102)은 디지털 컴포넌트를 응답들과 통합하도록 디스플레이 출력을 구성하여, 디지털 컴포넌트가 응답(314a-c)와 동일한 그래픽 사용자 인터페이스 엘리먼트와 매칭되도록 할 수 있다. 예를 들어, 디지털 컴포넌트는 두 줄의 텍스트 및 아이콘(322)과 레이아웃을 매칭시킬 수 있다. 디지털 컴포넌트에 대한 텍스트는 굵게 밑줄 친 음식점(318)의 이름, 콜론 및 설명 "Pizza & Subs"과 주소를 포함하는 두 번째 텍스트 줄을 포함할 수 있다. 텍스트(318)는 음식점 A가 스타일과 매칭되도록 텍스트(316)와 유사하게 굵게 표시되고 밑줄이 그어질 수 있다. 그러나, 디지털 컴포넌트의 디스플레이는 그것이 스폰서 디지털 컴포넌트(324)라는 표시를 포함함으로써 변할 수 있다.
도 4는 그래픽 사용자 인터페이스의 렌더링을 관리하는 방법을 도시한다. 방법(400)은 도 1, 도 2 또는 도 5에 도시된 하나 이상의 컴포넌트 또는 시스템에 의해 수행될 수 있다. 방법(400)은 (402)에서 데이터 패킷을 수신하는 데이터 프로세싱 시스템을 포함할 수 있다. 데이터 프로세싱 시스템은 인터페이스를 통해 데이터 패킷들을 수신할 수 있다. 데이터 패킷들은 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함할 수 있다. 예를 들어, 디지털 어시스턴트 디바이스의 마이크로폰은 입력 오디오 신호를 검출할 수 있다.
동작(404)에서, 데이터 프로세싱 시스템은 식별자 및 쿼리를 결정할 수 있다. 데이터 프로세싱 시스템은 애플리케이션 식별자 및 상기 애플리케이션 식별자에 대응하는 애플리케이션으로 입력될 제1 쿼리를 결정할 수 있다. 데이터 프로세싱 시스템은 입력 오디오 신호의 프로세싱 또는 파싱에 기초하여 애플리케이션 식별자 및 제1 쿼리를 결정할 수 있다. 데이터 프로세싱 시스템은 자연어 처리 기법 또는 시맨틱 분석 기법을 적용하여 애플리케이션 식별자 및 제1 쿼리를 식별할 수 있다. 애플리케이션 식별자는 챗봇 애플리케이션을 식별하거나 표시할 수 있다. 챗봇 애플리케이션을 호출하여 쿼리를 실행하거나 프로세싱할 수 있다. 챗봇 애플리케이션은 쿼리를 프로세싱하도록 구성된 대화식 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다.
동작(406)에서, 데이터 프로세싱 시스템은 제2 쿼리를 생성하고 제공할 수 있다. 데이터 프로세싱 시스템은 제1 쿼리에 기초하여 제2 쿼리를 생성할 수 있다. 데이터 프로세싱 시스템은 제1 쿼리 및 입력 오디오 신호를 검출한 컴퓨팅 디바이스와 연관된 정보에 기초하여 제2 쿼리를 생성할 수 있다. 데이터 프로세싱 시스템은 제1 쿼리에 추가 정보를 보충하여 제2 쿼리를 생성할 수 있다. 예를 들어, 제1 쿼리는 "내 부근", "근처", "근접", "도보 거리 내" 또는 "우리 동네"와 같은 위치 관련 용어의 표시를 포함할 수 있다. 데이터 프로세싱 시스템(예를 들어, 챗봇 컴포넌트를 통해)은 이 위치 관련 용어를 식별하기 위해 제1 쿼리를 파싱할 수 있다. 데이터 프로세싱 시스템은 컴퓨팅 디바이스의 현재 위치와 같이, 이 용어와 관련된 정보를 결정할 수 있다. 그 다음, 데이터 프로세싱 시스템은 위치 정보를 포함하는 제2 쿼리를 생성할 수 있다. 예를 들어, 제1 쿼리가 "내 근처 레스토랑 찾아줘"인 경우, 제2 쿼리는 "캘리포니아 산호세의 음식점 찾아줘"가 될 수 있다. 데이터 프로세싱 시스템은 제2 쿼리를 챗봇 애플리케이션 또는 서드 파티 챗봇 제공자 서버로 전송하거나 제공할 수 있다.
일부 경우에, 데이터 프로세싱 시스템에서 제1 쿼리를 서드 파티 챗봇 제공자 서버에 직접 제공할 수 있다. 서드 파티 챗봇 제공자 서버는 제1 쿼리를 파싱하고, 제1 쿼리에 대한 관련 응답을 생성하기 위해 추가 정보가 필요할 수 있음을 결정할 수 있다. 제1 쿼리를 파싱하고, 누락된 정보를 식별하거나 추가 정보가 응답 생성을 용이하게 할 수 있다는 것에 응답하여, 서드 파티 서버는 추가 정보에 대한 프롬프트 또는 요청을 생성하고, 상기 프롬프트 또는 요청을 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스에 전송할 수 있다. 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스는 요청된 추가 정보로 서드 파티 서버로부터의 요청에 응답할 수 있다.
일부 경우에, 데이터 프로세싱 시스템은 쿼리를 챗봇 애플리케이션에 제공할 수 있다. 챗봇 애플리케이션은 제1 쿼리를 수신하고, 제1 쿼리에 기초하여 제2 쿼리를 생성할 수 있다. 챗봇 애플리케이션은 데이터 프로세싱 시스템에서 적어도 부분적으로 실행될 수 있다. 챗봇 애플리케이션은 입력 쿼리 또는 제1 쿼리를 수신하거나, 누락된 정보를 식별하거나 또는 제1 쿼리를 프리-프로세싱하여 응답 생성을 용이하게하는 제2 쿼리를 생성하는 쿼리 입력 인터페이스 쿼리 프로세싱 컴포넌트(예를 들어, 챗봇 컴포넌트)를 포함할 수 있다. 챗봇 애플리케이션은 제2 쿼리를 서드 파티 챗봇 제공자 서버로 전송하여, 제2 쿼리에 대한 응답을 획득할 수 있다. 데이터 프로세싱 시스템은 컴퓨팅 디바이스를 통해 디스플레이하기 위해 제2 쿼리에 대한 응답들을 수신할 수 있다.
동작(408)에서, 데이터 프로세싱 시스템은 응답들을 획득할 수 있다. 데이터 프로세싱 시스템은 서드 파티 챗봇 제공자 서버로부터 응답들을 획득하거나 수신할 수 있다. 일부 경우에, 데이터 프로세싱 시스템은 응답들이 컴퓨팅 디바이스에 디스플레이되기 전에 응답들을 인터셉트할 수 있다. 데이터 프로세싱 시스템은 후킹 컴포넌트를 사용하여 응답들을 인터셉트할 수 있다. 응답들은 서드 파티 챗봇 제공자에 의해 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스에서 실행되는 챗봇 애플리케이션으로 전송될 수 있다. 후킹 컴포넌트는 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스에서 실행되는 챗봇 애플리케이션을 향하는 응답들을 인터셉트할 수 있다. 후킹 컴포넌트는 응답들을 인터셉트하면, 응답들을 콘텐츠 선택 컴포넌트로 재-전송하거나 포워딩할 수 있다.
동작(410)에서, 데이터 프로세싱 시스템은 키워드를 생성하고 디지털 컴포넌트를 식별할 수 있다. 데이터 프로세싱 시스템은 인터셉트된 응답들을 파싱하여, 응답들에 기초한 키워드를 생성할 수 있다. 데이터 프로세싱 시스템은 응답들에서 키워드로 사용할 용어를 선택할 수 있다. 데이터 프로세싱 시스템은 시맨틱 프로세싱을 응답들에 적용하여, 응답들에 대한 토픽을 식별할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 제공자에 의해 제공되는 디지털 컴포넌트를 식별하기 위해 자동 생성된 키워드를 사용하여 실시간 콘텐츠 선택 프로세스를 수행할 수 있다.
동작(412)에서, 데이터 프로세싱 시스템은 응답들과의 통합을 위해 디지털 컴포넌트를 검증하기 위해, 응답들과 함께 디지털 컴포넌트를 중복 제거할 수 있다. 데이터 프로세싱 시스템은 디지털 컴포넌트가 서드 파티 콘텐츠 제공자 디바이스에 의해 제공된 유기적 응답들 중 하나와 매칭되지 않음을 확인하기 위해 중복 제거를 수행할 수 있다. 디지털 컴포넌트가 응답들과 다른 경우, 데이터 프로세싱 시스템은 디지털 컴포넌트를 응답들에 추가하기로 결정할 수 있다. 디지털 컴포넌트가 응답들 중 하나와 매칭되면, 데이터 프로세싱 시스템은 디지털 컴포넌트의 추가를 차단하기로 결정한 다음, 제2 디지털 컴포넌트(예를 들어, 콘텐츠 선택 프로세스에 기초하여 제2 최상위 디지털 컴포넌트)를 선택할 수 있다.
동작(414)에서, 데이터 프로세싱 시스템은 템플릿을 검색하고, 응답들과 통합된 디지털 컴포넌트를 포함하는 디스플레이 출력을 구성할 수 있다. 데이터 프로세싱 시스템은 복수의 응답들을 렌더링하기 위한 폰트, 색상 및 레이아웃을 정의하는 템플릿(예를 들어, 그래픽 사용자 인터페이스 템플릿)을 검색할 수 있다. 템플릿은 "Times New Roman"과 같은 폰트 식별자 또는 폰트의 알파벳 숫자 식별자를 포함할 수 있다. 템플릿은 폰트 크기, 폰트 스타일, 문자 간격 또는 줄 간격의 표시를 더 포함할 수 있다. 템플릿은 폰트, 텍스트 색상, 전경색, 배경색, 아이콘 색상 또는 디스플레이 출력을 구성할 때 사용할 기타 색상 테마를 포함하거나 정의할 수 있다. 템플릿은 텍스트, 아이콘, 응답, 테두리, 행 또는 열과 같은 그래픽 엘리먼트들의 포지션과 같은 레이아웃을 정의할 수 있다.
그래픽 사용자 인터페이스 템플릿은 다양한 형식으로 제공될 수 있다. 예를 들어, 그래픽 사용자 인터페이스 템플릿은 CSS(Cascading Style Sheet) 또는 그것의 엘리먼트들을 사용하여 제공되어, 엘리먼트들이 디스플레이 화면에 표시되는 방법을 정의할 수 있다. 그래픽 사용자 인터페이스 템플릿은 사용자 인터페이스 키트를 사용할 수 있다. 그래픽 사용자 인터페이스는 *.PSD 파일(예: 포토샵 프로그램 파일 형식)을 사용할 수 있다.
동작(416)에서, 데이터 프로세싱 시스템은 디스플레이 출력을 제공할 수 있다. 데이터 프로세싱 시스템은 생성된 디스플레이 출력을 컴퓨팅 디바이스에 전송하여 컴퓨팅 디바이스로 하여금 컴퓨팅 디바이스에 통신 가능하게 연결된 디스플레이 디바이스를 통해 디스플레이하기 위한 디스플레이 출력을 렌더링하게 할 수 있다.
도 5은 예시적 컴퓨터 시스템(500)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(500)는 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은 그 컴포넌트들을 포함하거나 이들을 구현하는데 사용될 수 있다. 데이터 프로세싱 시스템(102)은 지능형 개인 어시스턴트 또는 음성 기반 디지털 어시스턴트를 포함할 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 컴포넌트 및 정보를 프로세싱하기 위해 버스(505)에 연결된 프로세서(510) 또는 프로세싱 회로를 포함한다. 컴퓨팅 시스템(500)은 또한 정보를 프로세싱하기 위해 버스에 연결된 하나 이상의 프로세서들(510) 또는 프로세싱 회로들을 포함할 수 있다. 컴퓨팅 시스템(500)은 또한 정보 및 프로세서(510)에 의해 실행될 명령어들을 저장하기 위해 버스(505)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(515)를 포함한다. 메인 메모리(515)는 데이터 저장소(122)이거나 데이터 저장소(145)를 포함할 수 있다. 메인 메모리(515)는 또한 프로세서(510)에 의한 명령어들의 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(500)은 프로세서(510)를 위한 정적 정보 및 명령어들을 저장하기 위해 버스(505)에 연결된 ROM(read-only memory)(520) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 솔리드 스테이트 디바이스(SSD), 자기 디스크 또는 광 디스크와 같은 저장 디바이스(525)는 정보 및 명령어들을 영구적으로 저장하기 위해 버스(505)에 연결될 수 있다. 저장 디바이스(525)는 데이터 저장소(122)를 포함하거나 데이터 저장소(145)의 일부일 수 있다.
컴퓨팅 시스템(500)은 버스(505)를 통해, 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(535)에 연결될 수 있다. 정보 및 명령 선택을 프로세서(510)와 통신하기 위해 영숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(530)가 버스(505)에 연결될 수 있다. 입력 디바이스(530)는 터치 스크린 디스플레이(535)를 포함할 수 있다. 입력 디바이스(530)는 또한 방향 정보 및 명령 선택을 프로세서(510)와 통신하고 디스플레이(535) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다. 디스플레이(535)는 예를 들면, 데이터 프로세싱 시스템(102), 클라이언트 컴퓨팅 디바이스(150) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스, 시스템 및 방법은 프로세서(510)가 메인 메모리(515)에 포함된 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(500)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(525)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(515)로 판독될 수 있다. 메인 메모리(515)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(500)으로 하여금 본 명세서에 기술된 예시적 프로세스들을 수행하게 한다. 멀티-프로세싱 배열에서 하나 이상의 프로세서들은 또한 메인 메모리(515)에 포함된 명령어들을 실행하기 위해 이용될 수 있다. 본 명세서에 기술된 시스템 및 방법과 함께 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 조합하여 유선 회로가 사용될 수 있다. 본 명세서에 기술된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 한정되지 않는다.
예시적 컴퓨팅 시스템이 도 5에 설명되었지만. 본 명세서에 기술된 동작들을 포함하는 본 발명은 본 명세서에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 개인 정보 예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 사용자의 선호들 또는 사용자의 위치에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버 또는 기타 데이터 프로세싱 시스템으로부터의 콘텐츠를 수신할지 또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 익명화되어, 파라미터들을 생성하는 경우 개인적으로 식별가능한 정보는 제거되도록 한다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 익명화되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 그 또는 그녀에 관한 정보가 어떻게 수집되는지 그리고 콘텐츠 서버에 의해 사용되는지에 관한 제어를 가질 수 있다.
본 발명과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명은 하나 이상의 컴퓨터 프로그램들 예를 들어, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 회로들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 엑세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다. 본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "데이터 프로세싱 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 프로세싱 장치"는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 다양한 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 예를 들면, 인터페이스(110), 챗봇 컴포넌트(114), 콘텐츠 선택 컴포넌트(118), 병합 컴포넌트(120) 또는 NLP 컴포넌트(112) 및 다른 데이터 프로세싱 시스템(102) 컴포넌트들은 하나 이상의 데이터 프로세싱 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 앱, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있다. 컴퓨터 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들(예: 데이터 프로세싱 시스템(102)의 컴포넌트들)을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
본 명세서에서 기술된 발명은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
시스템(100) 또는 시스템(500)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크(예: 네트워크(105)를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, 디지털 컴포넌트를 표현하는 데이터 패킷들)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서, 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 컴퓨팅 디바이스(104) 또는 콘텐츠 제공자 컴퓨팅 디바이스(106) 또는 챗봇 제공자 컴퓨팅 디바이스(108)으로부터 데이터 프로세싱 시스템(102)에 의해 수신).
동작들이 특정한 순서로 도면에 도시되었지만, 상기 동작들은 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것이 아니며, 모든 도시된 동작들이 수행되어야만 하는 것은 아니다. 본 명세서에 기술된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서의 분리를 필요로 하지 않으며, 기술된 프로그램 컴포넌트들은 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(112) 또는 콘텐츠 선택 컴포넌트(118)는 단일 컴포넌트, 앱 또는 프로그램, 또는 하나 이상의 프로세싱 회로를 갖는 논리 디바이스이거나 또는 데이터 프로세싱 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
일부 예시적 구현예들을 설명하였지만, 전술한 예는 예시적인 것이며 제한적인 것은 아니며 예시로서 제시되었다. 특히, 본 명세서에 제시된 많은 예들이 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 그러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현예와 관련하여 논의된 동작, 엘리먼트 및 구성들은 다른 구현 또는 구현예들에서 유사한 역할로부터 배제되지 않는다.
본 명세서에서 사용된 문구 및 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. "포함(including)" "포함(comprising)" "포함(having)" "포함(containing)" "포함(involving)" "포함(characterized by)" "포함(characterized in that)" 및 본 명세서에서 이들의 변형들은 열거된 아이템들, 그 균등물 및 추가 아이템들뿐만 아니라 배타적으로 열거된 아이템들로 구성되는 대안적 구현예들을 포함하는 것을 의미한다. 일 구현예에서, 본 명세서에 기술된 시스템 및 방법은 설명된 엘리먼트들, 동작들 또는 컴포넌트들 중 하나, 하나 이상의 조합 또는 전부로 구성된다.
단수형으로 본 명세서에서 언급된 시스템 및 방법의 구현 또는 엘리먼트에 관한 참조는 이들 엘리먼트들 복수형을 포함하는 구현예들을 포함할 수 있고, 복수형으로 본 명세서에서 언급된 임의의 구현예 또는 엘리먼트에 대한 임의의 참조는 단수형 엘리먼트를 포함하는 구현예들을 포함할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 그들의 컴포넌트들, 동작 또는 엘리먼트를 단수 또는 복수 구성으로 제한하려는 것이 아니다. 임의의 정보, 동작 또는 엘리먼트에 기초한 임의의 동작 또는 엘리먼트에 대한 참조는 해당 동작 또는 엘리먼트가 적어도 부분적으로 임의의 정보, 동작 또는 엘리먼트에 기초하는 구현예를 포함할 수 있다.
본 명세서에 개시된 임의의 구현예는 임의의 다른 구현예 또는 실시예와 결합될 수 있으며, "구현예", "일부 구현예", "일 구현예" 등은 반드시 상호 배타적이지 않고, 구현예와 관련하여 기술된 특정한 구성, 구조 또는 특성이 적어도 하나의 구현예 또는 실시예에 포함될 수 있음을 나타낸다. 본 명세서에 사용된 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현예는 본 명세서에 개시된 양태들 및 구현예들과 일관된 방식으로 임의의 다른 구현예와 포괄적으로 또는 배타적으로 결합될 수 있다.
"또는"에 대한 참조는 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어들 중 하나, 하나 이상 및 전부를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 예를 들어, "A 및 B 중 적어도 하나"에 대한 참조는 A 및 B 뿐만 아니라 A와 B 둘 모두를 포함할 수 있다. "포함하는" 또는 다른 개방 용어와 함께 사용되는 이러한 참조는 추가적 아이템들을 포함할 수 있다.
도면, 상세한 설명 또는 청구범위의 기술적 구성에 참조 부호가 있는 경우, 상기 참조 부호는 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키기 위해 포함되었다. 따라서, 참조 부호들 또는 그것들의 부재는 임의의 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 입력 오디오 신호에 기초하여 제1 쿼리를 식별하고, 제2 쿼리를 생성하지 않고 제1 쿼리에 대한 응답을 생성하기 위해 제1 쿼리를 서드 파티 챗봇 제공자 디바이스에 전송할 수 있다. 전술한 구현예들은 기술된 시스템 및 방법을 제한하는 것이라기 보다는 예시적인 것이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 상술한 설명보다는 첨부된 청구범위에 의해 표시되며, 청구범위의 의미 및 범위 내에서의 변경들도 그 안에 포함된다.

Claims (20)

  1. 시스템으로서,
    하나 이상의 프로세서를 포함하는 데이터 프로세싱 시스템을 포함하며, 상기 데이터 프로세싱 시스템은:
    상기 데이터 프로세싱 시스템으로부터 원격에 있는 컴퓨팅 디바이스로부터의 입력에 기초하여, 쿼리를 생성하고;
    상기 컴퓨팅 디바이스에 의해 실행되는 애플리케이션을 통해 출력하기 위한 상기 쿼리에 대한 하나 이상의 응답을 식별하고;
    상기 하나 이상의 응답에 기초하여 키워드를 생성하고;
    실시간 콘텐츠 선택 프로세스를 통해, 상기 키워드를 상기 실시간 콘텐츠 선택 프로세스에 입력함으로써 콘텐츠 제공자 디바이스에 의해 제공된 디지털 컴포넌트를 선택하고;
    상기 디지털 컴포넌트를 상기 하나 이상의 응답과 통합하고; 그리고
    상기 하나 이상의 응답과 통합된 디지털 컴포넌트를 상기 컴퓨팅 디바이스에 제공하여 상기 컴퓨팅 디바이스로 하여금 상기 컴퓨팅 디바이스에 통신 가능하게 연결된 디스플레이 디바이스에서 상기 애플리케이션을 통해 상기 하나 이상의 응답과 통합된 디지털 컴포넌트를 렌더링하게 하도록 구성되는, 시스템.
  2. 청구항 1에 있어서, 상기 애플리케이션은 서드파티 서버에 의해 제공되는 서드 파티 챗봇을 포함하는, 시스템.
  3. 청구항 1에 있어서,
    상기 데이터 프로세싱 시스템은 상기 입력을 수신하도록 구성되며, 상기 입력은 상기 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는, 시스템.
  4. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 입력으로부터 제1 쿼리를 결정하고; 그리고
    상기 입력에서의 상기 제1 쿼리 및 상기 컴퓨팅 디바이스와 연관된 정보에 기초하여 상기 쿼리를 생성하도록 구성되는, 시스템.
  5. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 컴퓨팅 디바이스의 위치를 결정하고; 그리고
    상기 위치와 상기 입력으로부터 식별된 제1 쿼리를 사용하여 상기 쿼리를 생성하도록 구성되는, 시스템.
  6. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 애플리케이션과 연관된 서드파티 서버에 상기 쿼리를 제공하고; 그리고
    상기 서드파티 서버로부터 상기 하나 이상의 응답을 수신하도록 구성되는, 시스템.
  7. 청구항 1에 있어서,
    상기 데이터 프로세싱 시스템은 상기 디지털 컴포넌트를 상기 하나 이상의 응답과 통합하기로 결정하도록 구성되는, 시스템.
  8. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 디지털 컴포넌트 및 상기 하나 이상의 응답으로 중복 제거 프로세스를 실행하고; 그리고
    상기 디지털 컴포넌트 및 상기 하나 이상의 응답으로 실행된 상기 중복 제거 프로세스에 응답하여, 상기 디지털 컴포넌트를 상기 하나 이상의 응답에 추가할 것을 결정하도록 구성되는, 시스템.
  9. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 애플리케이션에 대해, 상기 하나 이상의 응답을 렌더링하기 위한 폰트, 색상 및 레이아웃을 정의하는 그래픽 사용자 인터페이스 템플릿을 검색하고;
    상기 그래픽 사용자 인터페이스 템플릿에 기초하여, 상기 디지털 컴포넌트를 상기 레이아웃에 기초하여 하나 이상의 응답과 통합하기 위해 상기 디지털 컴포넌트의 폰트 또는 색상 중 적어도 하나를 수정하도록 구성되는, 시스템.
  10. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 디지털 컴포넌트를 상기 하나 이상의 응답과 통합하는 그래픽 사용자 인터페이스 템플릿으로 디스플레이 출력을 구성하고; 그리고
    상기 디스플레이 출력을 상기 컴퓨팅 디바이스에 제공하여 상기 컴퓨팅 디바이스로 하여금 상기 애플리케이션을 통해 상기 하나 이상의 응답과 통합된 상기 디지털 컴포넌트를 갖는 상기 디스플레이 출력을 렌더링하게 하도록 구성되는, 시스템.
  11. 방법으로서,
    메모리 및 하나 이상의 프로세서를 포함하는 데이터 프로세싱 시스템에 의해, 상기 데이터 프로세싱 시스템으로부터 원격에 있는 컴퓨팅 디바이스로부터의 입력에 기초하여 쿼리를 생성하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 컴퓨팅 디바이스에 의해 실행되는 애플리케이션을 통해 출력하기 위한 상기 쿼리에 대한 하나 이상의 응답을 식별하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 하나 이상의 응답에 기초하여 키워드를 생성하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 실시간 콘텐츠 선택 프로세스를 통해, 상기 키워드를 상기 실시간 콘텐츠 선택 프로세스에 입력함으로써 콘텐츠 제공자 디바이스에 의해 제공된 디지털 컴포넌트를 선택하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 디지털 컴포넌트를 상기 하나 이상의 응답과 통합하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 하나 이상의 응답과 통합된 디지털 컴포넌트를 상기 컴퓨팅 디바이스에 제공하여 상기 컴퓨팅 디바이스로 하여금 상기 컴퓨팅 디바이스에 통신 가능하게 연결된 디스플레이 디바이스에서 상기 애플리케이션을 통해 상기 하나 이상의 응답과 통합된 디지털 컴포넌트를 렌더링하도록 하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 애플리케이션은 서드파티 서버에 의해 제공되는 서드 파티 챗봇을 포함하는, 방법.
  13. 청구항 11에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 입력을 수신하는 단계를 더 포함하며, 상기 입력은 상기 컴퓨팅 디바이스의 센서에 의해 검출된 입력 오디오 신호를 포함하는, 방법.
  14. 청구항 11에 있어서, 상기 쿼리를 생성하는 단계는:
    상기 데이터 프로세싱 시스템에 의해, 상기 입력으로부터 제1 쿼리를 결정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 입력에서의 상기 제1 쿼리 및 상기 컴퓨팅 디바이스와 연관된 정보에 기초하여 상기 쿼리를 생성하는 단계를 더 포함하는, 방법.
  15. 청구항 11에 있어서, 상기 쿼리를 생성하는 단계는:
    상기 데이터 프로세싱 시스템에 의해, 상기 컴퓨팅 디바이스의 위치를 결정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 위치와 상기 입력으로부터 식별된 제1 쿼리를 사용하여 상기 쿼리를 생성하는 단계를 더 포함하는, 방법.
  16. 청구항 11에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 애플리케이션과 연관된 서드파티 서버에 상기 쿼리를 제공하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 서드파티 서버로부터 상기 하나 이상의 응답을 수신하는 단계를 더 포함하는, 방법.
  17. 청구항 11에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 디지털 컴포넌트를 상기 하나 이상의 응답과 통합하도록 결정하는 단계를 더 포함하는, 방법.
  18. 청구항 11에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 디지털 컴포넌트 및 상기 하나 이상의 응답으로 중복 제거 프로세스를 실행하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 디지털 컴포넌트 및 상기 하나 이상의 응답으로 실행된 상기 중복 제거 프로세스에 응답하여, 상기 디지털 컴포넌트를 상기 하나 이상의 응답에 추가할 것을 결정하는 단계를 더 포함하는, 방법.
  19. 청구항 11에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 애플리케이션에 대해, 상기 하나 이상의 응답을 렌더링하기 위한 폰트, 색상 및 레이아웃을 정의하는 그래픽 사용자 인터페이스 템플릿을 검색하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 그래픽 사용자 인터페이스 템플릿에 기초하여, 상기 디지털 컴포넌트를 상기 레이아웃에 기초하여 하나 이상의 응답과 통합하기 위해 상기 디지털 컴포넌트의 폰트 또는 색상 중 적어도 하나를 수정하는 단계를 더 포함하는, 방법.
  20. 청구항 11에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 디지털 컴포넌트를 상기 하나 이상의 응답과 통합하는 그래픽 사용자 인터페이스 템플릿으로 디스플레이 출력을 구성하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 디스플레이 출력을 상기 컴퓨팅 디바이스에 제공하여 상기 컴퓨팅 디바이스로 하여금 상기 애플리케이션을 통해 상기 하나 이상의 응답과 통합된 상기 디지털 컴포넌트를 갖는 상기 디스플레이 출력을 렌더링하는 단계를 더 포함하는, 방법.
KR1020227001311A 2017-12-08 2018-06-15 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리 KR102477073B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/836,746 2017-12-08
US15/836,746 US10558426B2 (en) 2017-12-08 2017-12-08 Graphical user interface rendering management by voice-driven computing infrastructure
PCT/US2018/037858 WO2019112646A1 (en) 2017-12-08 2018-06-15 Graphical user interface rendering management by voice-driven computing infrastructure
KR1020207008090A KR102353286B1 (ko) 2017-12-08 2018-06-15 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207008090A Division KR102353286B1 (ko) 2017-12-08 2018-06-15 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리

Publications (2)

Publication Number Publication Date
KR20220010070A KR20220010070A (ko) 2022-01-25
KR102477073B1 true KR102477073B1 (ko) 2022-12-13

Family

ID=62916751

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207008090A KR102353286B1 (ko) 2017-12-08 2018-06-15 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리
KR1020227001311A KR102477073B1 (ko) 2017-12-08 2018-06-15 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207008090A KR102353286B1 (ko) 2017-12-08 2018-06-15 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리

Country Status (6)

Country Link
US (3) US10558426B2 (ko)
EP (2) EP3665567A1 (ko)
JP (2) JP7032523B2 (ko)
KR (2) KR102353286B1 (ko)
CN (2) CN111108476B (ko)
WO (1) WO2019112646A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6966979B2 (ja) * 2018-06-26 2021-11-17 株式会社日立製作所 対話システムの制御方法、対話システム及びプログラム
CN108958844B (zh) * 2018-07-13 2021-09-03 京东方科技集团股份有限公司 一种应用程序的控制方法及终端
US11997060B1 (en) * 2019-01-29 2024-05-28 Allscripts Software, Llc Apparatus, systems, and methods for third-party information display in a user interface in a medical computer system environment
US20200244604A1 (en) * 2019-01-30 2020-07-30 Hewlett Packard Enterprise Development Lp Application program interface documentations
US12041015B1 (en) * 2019-03-21 2024-07-16 Intrado Corporation Automated relevant subject matter detection
US11113475B2 (en) * 2019-04-15 2021-09-07 Accenture Global Solutions Limited Chatbot generator platform
US11637792B2 (en) * 2019-04-19 2023-04-25 Oracle International Corporation Systems and methods for a metadata driven integration of chatbot systems into back-end application services
CN110297685B (zh) * 2019-06-28 2022-09-16 百度在线网络技术(北京)有限公司 用户界面描述文件生成方法、装置、设备及存储介质
EP3970057A1 (en) 2019-10-15 2022-03-23 Google LLC Voice-controlled entry of content into graphical user interfaces
EP4073988A1 (en) * 2019-12-13 2022-10-19 Liveperson, Inc. Function-as-a-service cloud chatbot for two-way communication systems
US11321058B2 (en) 2020-03-30 2022-05-03 Nuance Communications, Inc. Development system and method
US11604929B2 (en) * 2020-08-31 2023-03-14 Google Llc Guided text generation for task-oriented dialogue
US11893589B2 (en) * 2020-09-15 2024-02-06 International Business Machines Corporation Automated support query
US20230186911A1 (en) * 2020-10-21 2023-06-15 Google Llc Delivery of Compatible Supplementary Content via a Digital Assistant
US11693874B2 (en) * 2020-11-25 2023-07-04 Sap Se Framework to facilitate data access
US11521358B2 (en) * 2021-01-07 2022-12-06 Google Llc Computing platform for facilitating augmented reality experiences with third party assets
KR20230014542A (ko) * 2021-07-21 2023-01-30 현대자동차주식회사 그래픽 사용자 인터페이스 제공 시스템 및 방법
CN114067797A (zh) * 2021-11-19 2022-02-18 杭州逗酷软件科技有限公司 一种语音控制方法、装置、设备以及计算机存储介质
US20240020570A1 (en) * 2022-07-13 2024-01-18 Capital One Services, Llc Systems and methods for using machine learning models to organize and select access-restricted components for user interface templates based on characteristics of access token types
US20240257253A1 (en) * 2023-01-31 2024-08-01 Truist Bank Computing system for controlling transmission of placement packets to device connected over a communication channel using machine learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122525A (ja) 2005-10-29 2007-05-17 National Institute Of Information & Communication Technology 言い換え処理方法及び装置
US20090030800A1 (en) 2006-02-01 2009-01-29 Dan Grois Method and System for Searching a Data Network by Using a Virtual Assistant and for Advertising by using the same

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010029523A1 (en) 2000-01-21 2001-10-11 Mcternan Brennan J. System and method for accounting for variations in client capabilities in the distribution of a media presentation
US9251520B2 (en) 2006-02-22 2016-02-02 Google Inc. Distributing mobile advertisements
US7962464B1 (en) * 2006-03-30 2011-06-14 Emc Corporation Federated search
CN101801440A (zh) 2007-09-13 2010-08-11 分子制药洞察公司 用于和放射性试剂一起使用的输注和输送系统
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US8255224B2 (en) * 2008-03-07 2012-08-28 Google Inc. Voice recognition grammar selection based on context
US8145521B2 (en) * 2008-07-15 2012-03-27 Google Inc. Geographic and keyword context in embedded applications
US9146909B2 (en) 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
CN113470641B (zh) 2013-02-07 2023-12-15 苹果公司 数字助理的语音触发器
US9672822B2 (en) 2013-02-22 2017-06-06 Next It Corporation Interaction with a portion of a content item through a virtual assistant
US9767198B2 (en) * 2014-08-25 2017-09-19 Excalibur Ip, Llc Method and system for presenting content summary of search results
KR101662399B1 (ko) * 2014-10-27 2016-10-04 포항공과대학교 산학협력단 키워드 입력 기반의 사용자 관심정보를 이용한 질의응답 장치 및 방법
US10331312B2 (en) * 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
US9928840B2 (en) 2015-10-16 2018-03-27 Google Llc Hotword recognition
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US11294908B2 (en) * 2015-11-10 2022-04-05 Oracle International Corporation Smart search and navigate
CN106855771A (zh) * 2015-12-09 2017-06-16 阿里巴巴集团控股有限公司 一种数据处理方法、装置和智能终端
KR20170076199A (ko) * 2015-12-24 2017-07-04 오드컨셉 주식회사 커머셜 컨텐츠를 제공하는 방법, 장치 및 컴퓨터 프로그램
US10747758B2 (en) * 2016-04-29 2020-08-18 Rovi Guides, Inc. Methods and systems for identifying an information resource for answering natural language queries
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122525A (ja) 2005-10-29 2007-05-17 National Institute Of Information & Communication Technology 言い換え処理方法及び装置
US20090030800A1 (en) 2006-02-01 2009-01-29 Dan Grois Method and System for Searching a Data Network by Using a Virtual Assistant and for Advertising by using the same

Also Published As

Publication number Publication date
US20210326106A1 (en) 2021-10-21
EP4407434A2 (en) 2024-07-31
US10558426B2 (en) 2020-02-11
KR20200042927A (ko) 2020-04-24
CN111108476B (zh) 2024-03-26
JP7032523B2 (ja) 2022-03-08
JP2021501926A (ja) 2021-01-21
EP4407434A3 (en) 2024-10-16
KR102353286B1 (ko) 2022-01-20
JP2022071013A (ja) 2022-05-13
CN118349305A (zh) 2024-07-16
US11074039B2 (en) 2021-07-27
CN111108476A (zh) 2020-05-05
US20190179608A1 (en) 2019-06-13
US11429346B2 (en) 2022-08-30
EP3665567A1 (en) 2020-06-17
JP7459153B2 (ja) 2024-04-01
WO2019112646A1 (en) 2019-06-13
US20200174746A1 (en) 2020-06-04
KR20220010070A (ko) 2022-01-25

Similar Documents

Publication Publication Date Title
KR102477073B1 (ko) 음성 구동 컴퓨팅 인프라에 의해 그래픽 사용자 인터페이스 렌더링 관리
US11582169B2 (en) Modification of audio-based computer program output
US11907363B2 (en) Data transfer in secure processing environments
KR102603717B1 (ko) 네트워크 시스템에서 도메인-특정 모델의 생성
US10600409B2 (en) Balance modifications of audio-based computer program output including a chatbot selected based on semantic processing of audio
US11640822B2 (en) Dynamic sequence-based adjustment of prompt generation
US10614122B2 (en) Balance modifications of audio-based computer program output using a placeholder field based on content
KR102471071B1 (ko) 오디오 기반 컴퓨터 프로그램 출력의 수정

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
GRNT Written decision to grant