IP Library Granted Patent US 12,367,425
Granted Patent B1
US 12,367,425 · App. 19/005,699 · Granted Jul 22, 2025

Copilot customization with data producer(s)

Inventors: Elaine Kelsey (Corvallis, OR); Sazzad Mahmud Nasir (Muncie, IN); Jeffrey Thomas Yarbro (Memphis, TN); Lauren Elizabeth Egerton (New York, NY); Elliot Nicholas Robson (Seoul, KR); Brendan Michael Kelly (Somerville, MA); Robert Oscar Robson (Corvallis, OR); Spencer Thomas Ward (Kent, WA)
Assignee: THIA ST CO.
G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,367,425
App. No.
19/005,699
Granted
Jul 22, 2025
Kind
B1
Abstract

Methods and apparatus are disclosed for customizing a copilot. Document records related to copilot objectives or tasks are obtained and used to identify corresponding data sources. Data sources can be integrated into data producers or data repositories, to be used by a retrieval microservice. Data producers and other microservices are individually fine-tuned for the custom application, before or after integration into the copilot. The integrated copilot is tested end-to-end, and can be further refined. Disclosed techniques range from fully automated to human-in-the-loop (e.g. guided by an expert) to fully interactive. Some techniques produce tools which can automate certain customization operations. Training data, tasks, or document records blend expert-generated, developer-generated, or synthesized items.

Claims (139)

1. A method, comprising:

(a) capturing copilot objectives;

(b) obtaining one or more document records, each document record pertaining to one or more of the copilot objectives;

(c) identifying one or more data sources supporting the document record(s);

(d) configuring one or more data producers to provide one or more interfaces with the data source(s);

for each of the data producer(s):

(e) executing a respective first training regimen on the each data producer;

for each of a plurality of microservices of a copilot flow:

(f) executing a respective second training regimen on the each microservice;

wherein executing the first or second training regimen on a target comprises:

(ef1) generating training records including disjoint first and second subsets of records;

(ef2) applying the first subset of records to train the target; and

(ef3) applying the second subset of records to test the target; and

further wherein:

act (ef1) comprises act (ef1a) or act (ef1b):

(ef1a) by an expert, generating a first group of the training records; or

(ef1b) by a person distinct from the expert, generating first candidate training records and, by the expert, validating a subset of the first candidate training records as a second group of the training records; and

act (ef1) further comprises act (ef1c):

(ef1c) by a trained machine-learning tool, generating second candidate training records and, by the expert, validating a subset of the second candidate training records as a third group of the training records;

(g) assemble a copilot incorporating the microservices and the data producer(s):

(h) test the copilot; and

in at least a first case, in which the copilot satisfies a predetermined performance criterion:

(i) deploying the copilot.

2. The method of claim 1 , wherein act (h) determines that the copilot does not satisfy the predetermined performance criterion, and the method further comprises:

until the copilot satisfies the predetermined performance criterion:

performing one or more additional iterations of at least one among acts (a)-(g); and

repeating act (h).

3. The method of claim 1 , wherein the deployed copilot is configured to:

receive input from a client; and

process the input, using at least some of the microservices and the data producer(s), to obtain a result; and

transmit the result to the client.

4. The method of claim 1 , further comprising:

(i) configuring at least one of the identified data source(s) into a data repository;

wherein the assembled copilot further incorporates the data repository.

5. The method of claim 1 , wherein the document record(s) comprise one or more of:

a meeting transcript; an email conversation; or a presentation.

6. The method of claim 1 , wherein act (b) comprises:

prompting a trained machine learning tool to identify one or more candidate document records pertinent to one or more of the copilot objectives;

receiving the candidate document record(s) from the trained machine learning tool; and

validating a subset of the candidate document record(s) as at least some of the obtained document record(s).

7. The method of claim 1 , wherein act (c) comprises:

prompting a trained machine learning tool to determine one or more candidate data sources supporting one or more of the document record(s);

receiving the candidate data source(s) from the trained machine learning tool; and

validating a subset of the candidate data source(s) as at least some of the identified data source(s).

8. One or more computer-readable media storing instructions which, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations comprising:

(a) receiving one or more task inputs within scope of one or more copilot objectives;

(b) obtaining one or more document records relevant to the task input(s), the obtaining including:

(b1) determining one or more candidate document records relevant to the task input(s); and

(b2) obtaining validation of a subset of the candidate document record(s);

wherein the obtained document record(s) comprise the validated subset of the candidate document record(s);

(c) based at least partly on the document record(s), identifying one or more data sources supporting the document record(s);

(d) linking one or more of the data source(s) to respective data producer(s) of a copilot instance;

for each of the data producer(s):

(e) applying respective training data to fine-tune the each data producer until a respective first performance criterion is satisfied; and

for each of a plurality of microservices of the copilot instance:

(f) applying respective training data to fine-tune the each microservice until a respective second performance criterion is satisfied; and

(g) apply testing data to verify that performance of the copilot instance, incorporating the fine-tuned data producer(s) and the fine-tuned microservices, satisfies a third performance criterion;

wherein the copilot instance is configured to receive new task inputs within scope of the copilot objective(s) and, in response, generate and deliver corresponding outputs satisfying the copilot objective(s).

9. The one or more computer-readable media of claim 8 , wherein the linked one or more data sources are one or more first data sources, and the operations further comprise:

(h) subsequent to act (c) and prior to act (g), integrating one or more second data sources of the one or more data sources into a data repository coupled to a retrieval microservice of the copilot instance.

10. The one or more computer-readable media of claim 8 , wherein the operations further comprise:

(i) integrating at least one of the fine-tuned data producer(s) into the copilot instance.

11. The one or more computer-readable media of claim 8 , wherein the new task inputs direct the copilot instance to conduct or monitor interviews.

12. The one or more computer-readable media of claim 8 , wherein the new task inputs direct the copilot instance to annotate an interview or annotate a recorded work session.

13. A method, comprising:

(a) capturing copilot objectives;

(b) obtaining one or more document records, each document record pertaining to one or more of the copilot objectives;

(c) identifying one or more data sources supporting the document record(s);

(d) configuring one or more data producers to provide one or more interfaces with the data source(s);

for each of the data producer(s):

(e) executing a respective first training regimen on the each data producer;

for each of a plurality of microservices of a copilot flow:

(f) executing a respective second training regimen on the each microservice;

wherein executing the first or second training regimen on a target comprises:

(ef1) generating training records including disjoint first and second subsets of records;

(ef2) applying the first subset of records to train the target; and

(ef3) applying the second subset of records to test the target;

wherein, for at least a first case for which the testing at act (ef3) determines that neither a predetermined second performance criterion nor a third criterion is met, the method further comprises:

(ef4) iterating acts (ef2)-(ef3) until the testing at act (ef3) determines that the predetermined second performance criterion or the third criterion is met;

(g) assemble a copilot incorporating the microservices and the data producer(s):

(h) test the copilot; and

in at least a first case, in which the copilot satisfies a predetermined performance criterion:

(i) deploying the copilot.

14. A method, comprising:

(a) capturing copilot objectives;

(b) obtaining one or more document records, each document record pertaining to one or more of the copilot objectives;

(c) identifying one or more data sources supporting the document record(s);

(d) configuring one or more data producers to provide one or more interfaces with the data source(s);

for each of the data producer(s):

(e) executing a respective first training regimen on the each data producer;

for each of a plurality of microservices of a copilot flow:

(f) executing a respective second training regimen on the each microservice;

wherein executing the first or second training regimen on a target comprises:

(ef1) generating training records including disjoint first and second subsets of records;

(ef2) applying the first subset of records to train the target; and

(ef3) applying the second subset of records to test the target;

wherein, for at least a first case for which the testing at act (ef3) determines that a predetermined second performance criterion is not met, the method further comprises iterating, until act (ef6) establishes that the predetermined second performance criterion is met:

(ef4) generating additional training records including disjoint first and second additional subsets of records;

(ef5) applying the first additional subset of records to train the target; and

(ef6) applying at least the second additional subset of records to test the target;

(g) assemble a copilot incorporating the microservices and the data producer(s):

(h) test the copilot; and

in at least a first case, in which the copilot satisfies a predetermined performance criterion:

(i) deploying the copilot.

15. A method, comprising:

(a) capturing copilot objectives;

(b) obtaining one or more document records, each document record pertaining to one or more of the copilot objectives;

(c) identifying one or more data sources supporting the document record(s);

(d) configuring one or more data producers to provide one or more interfaces with the data source(s);

for each of the data producer(s):

(e) executing a respective first training regimen on the each data producer;

for each of a plurality of microservices of a copilot flow:

(f) executing a respective second training regimen on the each microservice;

wherein the microservices include an expansion microservice, a retrieval microservice, a qualification microservice, a core microservice, a protection microservice, and an evaluation microservice;

(g) assemble a copilot incorporating the microservices and the data producer(s), by:

coupling the expansion microservice to receive input from a client interface or an intermodal microservice;

coupling the retrieval microservice to receive input from the expansion microservice, the data producer(s), and a data repository;

coupling the qualification microservice to receive input from the retrieval microservice;

coupling the core microservice to receive input from the qualification microservice;

coupling the protection microservice to receive input from the core microservice;

coupling the evaluation microservice to receive input from the protection microservice; and

coupling the evaluation microservice to provide output to the client interface or the retrieval microservice;

(h) test the copilot; and

in at least a first case, in which the copilot satisfies a predetermined performance criterion:

(i) deploying the copilot.

16. One or more computer-readable media storing instructions which, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations comprising:

(a) receiving one or more task inputs within scope of one or more copilot objectives;

(b) obtaining one or more document records relevant to the task input(s);

(c) based at least partly on the document record(s), identifying one or more data sources supporting the document record(s), the identifying including:

(c1) determining one or more candidate data sources relevant to the document record(s); and

(c2) obtaining validation of a subset of the candidate data source(s);

wherein the identified data source(s) comprise the validated subset of the candidate data source(s);

(d) linking one or more of the data source(s) to respective data producer(s) of a copilot instance;

for each of the data producer(s):

(e) applying respective training data to fine-tune the each data producer until a respective first performance criterion is satisfied; and

for each of a plurality of microservices of the copilot instance:

(f) applying respective training data to fine-tune the each microservice until a respective second performance criterion is satisfied; and

(g) apply testing data to verify that performance of the copilot instance, incorporating the fine-tuned data producer(s) and the fine-tuned microservices, satisfies a third performance criterion;

wherein the copilot instance is configured to receive new task inputs within scope of the copilot objective(s) and, in response, generate and deliver corresponding outputs satisfying the copilot objective(s).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: KELSEY, ELAINE; NASIR, SAZZAD MAHMUD; YARBRO, JEFFREY THOMAS; EGERTON, LAUREN ELIZABETH; ROBSON, ELLIOT NICHOLAS; KELLY, BRENDAN MICHAEL; ROBSON, ROBERT OSCAR; WARD, SPENCER THOMAS
To: THIA ST CO.
Reel/Frame 069871/0410 →
Continuity (7)
Continuation PCTUS2024061934 · Dec 26, 2024
Continuation In Part 18898502 · Sep 26, 2024
Provisional Application 63717151 · Nov 6, 2024
Provisional Application 63709258 · Oct 18, 2024
Provisional Application 63646613 · May 13, 2024
Provisional Application 63561654 · Mar 5, 2024
Provisional Application 63620329 · Jan 12, 2024
References Cited (70)
US 8442940B1 · Faletti et al. · 2013 [cited by applicant]
US 10802488B1 · Abeloe · 2020 [cited by applicant]
US 10803127B2 · Alexander et al. · 2020 [cited by applicant]
US 10992780B1 · Rudrappa Goniwada · 2021 [cited by examiner]
US 11379715B2 · Tang et al. · 2022 [cited by applicant]
US 11443102B1 · Wilson · 2022 [cited by examiner]
US 11922121B2 · Wang · 2024 [cited by applicant]
US 12093658B1 · Silver et al. · 2024 [cited by applicant]
US 12136043B1 · Davis et al. · 2024 [cited by applicant]
US 12210973B2 · Johnson · 2025 [cited by applicant]
US 20150199646A1 · Taylor et al. · 2015 [cited by applicant]
US 20160246824A1 · Furuhashi et al. · 2016 [cited by applicant]
US 20170262811A1 · Ovadya · 2017 [cited by examiner]
US 20170262949A1 · Jay · 2017 [cited by applicant]
US 20180089593A1 · Patel et al. · 2018 [cited by applicant]
US 20190325353A1 · Aftab et al. · 2019 [cited by applicant]
US 20200050946A1 · Lecue et al. · 2020 [cited by applicant]
US 20200057946A1 · Singaraju et al. · 2020 [cited by applicant]
US 20200069208A1 · Keane · 2020 [cited by applicant]
US 20200186433A1 · Cui · 2020 [cited by examiner]
US 20200241944A1 · Derdak et al. · 2020 [cited by applicant]
US 20200257733A1 · Mei et al. · 2020 [cited by applicant]
US 20200380254A1 · Zeng · 2020 [cited by examiner]
US 20210035047A1 · Mossoba et al. · 2021 [cited by applicant]
US 20210089779A1 · Chan et al. · 2021 [cited by applicant]
US 20210295238A1 · Poon et al. · 2021 [cited by applicant]
US 20210174347A1 · Rose · 2021 [cited by applicant]
US 20210201128A1 · Xu et al. · 2021 [cited by applicant]
US 20210233030A1 · Preuss et al. · 2021 [cited by applicant]
US 20210286831A1 · Girardi et al. · 2021 [cited by applicant]
US 20210312399A1 · Asokan et al. · 2021 [cited by applicant]
US 20210357705A1 · Sung et al. · 2021 [cited by applicant]
US 20210365782A1 · Huang et al. · 2021 [cited by applicant]
US 20220067665A1 · Westerheide et al. · 2022 [cited by applicant]
US 20220232085A1 · Panikkar et al. · 2022 [cited by applicant]
US 20220237892A1 · Anderton-Yang · 2022 [cited by applicant]
US 20220284312A1 · Brecque · 2022 [cited by applicant]
US 20220336060A1 · Koop et al. · 2022 [cited by applicant]
US 20230133373A1 · McGonnell · 2023 [cited by applicant]
US 20230214192A1 · Makhija et al. · 2023 [cited by applicant]
US 20230214238A1 · Yitzhaki · 2023 [cited by examiner]
US 20230289691A1 · Sabourin · 2023 [cited by applicant]
US 20240012842A1 · Kislal et al. · 2024 [cited by applicant]
US 20240037949A1 · Johnston et al. · 2024 [cited by applicant]
US 20240087743A1 · Grimm et al. · 2024 [cited by applicant]
US 20240095679A1 · Nowak et al. · 2024 [cited by applicant]
US 20240111498A1 · Vaughn · 2024 [cited by examiner]
US 20240119383A1 · Bowers et al. · 2024 [cited by applicant]
US 20240176629A1 · Reddy · 2024 [cited by applicant]
US 20240202177A1 · Bandlamudi · 2024 [cited by examiner]
US 20240303569A1 · Yu · 2024 [cited by examiner]
US 20240362503A1 · Prasad et al. · 2024 [cited by applicant]
US 20240386015A1 · Crabtree · 2024 [cited by examiner]
US 20240403005A1 · Friddle · 2024 [cited by examiner]
US 20240412720A1 · Vasylyev · 2024 [cited by examiner]
US 20250005288A1 · Amatriain-Rubio et al. · 2025 [cited by applicant]
US 20250069308A1 · Cameron et al. · 2025 [cited by applicant]
Morisot, “Add a SideNet to your MainNet,” ArXiv:2007.13512v1, 15 pages (Jul. 2020). [cited by applicant]
Agarwal et al., “Knowledge graph based synthetic corpus generation for knowledge-enhanced language model pre-training,” ArXiv:2010.12688 v2 (Mar. 13, 2021). [cited by applicant]
Bodor et al., “From Development to Deployment: An Approach to MLOps Monitoring for Machine Learning Model,” 14th International Conference on Intelligent Systems: Theories and Applications, 7 pages (Nov. 2023). [cited by applicant]
Dorsch et al., “GraphGuard: Enhancing Data Quality in Knowledge Graph Pipelines,” SEMIIM, 14 pages, (Nov. 2023). [cited by applicant]
Feng et al., “Knowledge Card: Filling LLMs' Knowledge Gaps With Plug-in Specialized Language Models,” ArXiv:2305.09955v2, pp. 1-24 (Oct. 2023). [cited by applicant]
Jeong, “A Study on the Implementation of Generative AI Services Using an Enterprise Data-Based LLM Application Architecture,” ArXiv 2309.01105v1, pp. 1-26 (Sep. 2023). [cited by applicant]
Kaddour et al., “Challenges and Applications of Large Language Models,” ArXiv 2307.10169v1, pp. 1-72 (Jul. 2023). [cited by applicant]
Liang et al. “Modular Retrieval for Generalization and Interpretation,” ArXiv:2303.13419v1, pp. 1-15 (Mar. 2023). [cited by applicant]
Liu et al., “Multi-stage pre-training over simplified multimodal pre-training models,” ArXiv:2107.14596 (Jul. 22, 2021). [cited by applicant]
PCT/US2024/061299 Invitation to Pay Additional Fees, including Partial Search Report and Provisional Opinion, 15 pages (Apr. 9, 2025). [cited by applicant]
PCT/US2024/061934 Invitation to Pay Additional Fees, including Partial Search Report and Provisional Opinion, 20 pages (Apr. 4, 2025). [cited by applicant]
Roca et al., “Microservice chatbot architecture for chronic patient support,” Journal of Biomedical Informatics, pp. 1-19 (Oct. 2019). [cited by applicant]
Shao et al., “Enhancing Retrieval-Augmented Large Language Models with Iterative Retrieval-Generation Synergy,” ArXiv:2305.15294v1, pp. 1-12 (May 2023). [cited by applicant]