Skip to content

Commit

Permalink
call center editable
Browse files Browse the repository at this point in the history
  • Loading branch information
rag2111 committed Mar 5, 2024
1 parent 26aef37 commit bd5b97e
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 160 deletions.
6 changes: 3 additions & 3 deletions src/AIHub/Controllers/CallCenterController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ public IActionResult CallCenter()
[HttpPost]
public async Task<IActionResult> AnalyzeCall()
{
model.Text = HttpContext.Request.Form["text"];
model.Transcript = HttpContext.Request.Form["Transcript"];
model.Prompt = HttpContext.Request.Form["prompt"];

if (CheckNullValues(model.Text, model.Prompt))
if (CheckNullValues(model.Transcript, model.Prompt))
{
ViewBag.Message = "You must enter both a transcript and a prompt";
return View("CallCenter", model);
Expand Down Expand Up @@ -56,7 +56,7 @@ public async Task<IActionResult> AnalyzeCall()
Messages =
{
new ChatRequestSystemMessage(model.Prompt),
new ChatRequestUserMessage(@"Call transcript: "+model.Text),
new ChatRequestUserMessage(@"Call transcript: "+model.Transcript),
},
Temperature = (float)0.1,
MaxTokens = 1000,
Expand Down
8 changes: 1 addition & 7 deletions src/AIHub/Models/CallCenterModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,8 @@ namespace MVCWeb.Models;

public class CallCenterModel
{

public int? Severity { get; set; }
public int? Violence { get; set; }
public int? SelfHarm { get; set; }
public int? Hate { get; set; }
public string? Text { get; set; }
public string? Transcript { get; set; }
public string? Prompt { get; set; }
public string? Image { get; set; }
public string? Message { get; set; }

}
157 changes: 29 additions & 128 deletions src/AIHub/Views/CallCenter/CallCenter.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -31,135 +31,36 @@
Analyze call center call trancripts (that might come from your Call Center technology, or having transcribed with Azure Speech Services).
</p>
<form asp-controller="CallCenter" asp-action="AnalyzeCall" method="post">
<div class="row">
<div class="col-6">
<div class="row">
<div class="col-sm-3 mb-2 mb-sm-0">
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
<a class="nav-link active show" id="v-pills-english-tab" data-bs-toggle="pill" href="#v-pills-english" role="tab" aria-controls="v-pills-home" aria-selected="true">
<i class="mdi mdi-home-variant d-md-none d-block"></i>
<span class="d-none d-md-block">English</span>
</a>
<a class="nav-link" id="v-pills-spanish-tab" data-bs-toggle="pill" href="#v-pills-spanish" role="tab" aria-controls="v-pills-profile" aria-selected="false">
<i class="mdi mdi-account-circle d-md-none d-block"></i>
<span class="d-none d-md-block">Español</span>
</a>
<a class="nav-link" id="v-pills-basque-tab" data-bs-toggle="pill" href="#v-pills-basque" role="tab" aria-controls="v-pills-settings" aria-selected="false">
<i class="mdi mdi-settings-outline d-md-none d-block"></i>
<span class="d-none d-md-block">Euskera</span>
</a>
<a class="nav-link" id="v-pills-catalan-tab" data-bs-toggle="pill" href="#v-pills-catalan" role="tab" aria-controls="v-pills-settings" aria-selected="false">
<i class="mdi mdi-settings-outline d-md-none d-block"></i>
<span class="d-none d-md-block">Catalan</span>
</a>
<a class="nav-link" id="v-pills-galego-tab" data-bs-toggle="pill" href="#v-pills-galego" role="tab" aria-controls="v-pills-settings" aria-selected="false">
<i class="mdi mdi-settings-outline d-md-none d-block"></i>
<span class="d-none d-md-block">Galego</span>
</a>
</div>
</div> <!-- end col-->

<div class="col-sm-9">
<div class="tab-content" id="v-pills-tabContent">
<div class="tab-pane fade active show" id="v-pills-english" role="tabpanel" aria-labelledby="v-pills-english-tab">
<p class="mb-0">
Agent: Hi, thank you for calling Microsoft Customer Support. My name is Alex. How can I assist you today?
Customer: Hello, Alex. My name is Sarah, and I'm interested in using Azure OpenAI. I've heard it's a powerful platform, but I'm not sure where to start. Can you guide me through the process?
Agent: Of course, Sarah! I'd be happy to help. Let's get started. First, could you please provide me with some information? Do you already have an Azure account?
Customer: Yes, I do have an Azure account.
Agent: Great! Next, let's talk about your specific use case. Are you looking to integrate Azure OpenAI into an existing application or build something new from scratch?
Customer: I want to build a chatbot for our customer service center. We receive a lot of inquiries, and I'd like to automate some of the responses.
Agent: Excellent choice! Azure OpenAI is perfect for that. You can use the Retrieval Augmented Generation (RAG) pattern. It combines Azure Cognitive Search and Azure OpenAI Service. The RAG model retrieves relevant information from your data sources and feeds it to the GPT-3.5-turbo model.
Customer: Wow, that's comprehensive! Thank you, Alex. I'll follow these steps. Is there anything else I should keep in mind?
Agent: You're welcome, Sarah! Just remember to monitor your usage and costs.
Customer: How does pricing work?
Agent: Azure pricing varies by region and usage.
Customer: Alright, let me look at it to make sure i can estimate costs. My managers are always worried about costs.
Agent: Okay, anything else I can help you with?
Customer: Nothing, thank you Alex!
Agent: Feel free to reach out if you have any more questions. Have a great day!
</p>
</div>
<div class="tab-pane fade" id="v-pills-spanish" role="tabpanel" aria-labelledby="v-pills-spanish-tab">
<p class="mb-0">
Agente: Hola, gracias por llamar al servicio de atención al cliente de Microsoft. Me llamo Alex. ¿Cómo puedo ayudarle hoy?
Cliente: Hola, Alex. Mi nombre es Sarah y estoy interesada en usar Azure OpenAI. He oído que es una plataforma poderosa, pero no estoy seguro de por dónde empezar. ¿Puedes guiarme a través del proceso?
Agente: ¡Por supuesto, Sarah! Estaré feliz de poder ayudar. Empecemos. Primero, ¿podrías proporcionarme alguna información? ¿Ya tienes una cuenta de Azure?
Cliente: Sí, tengo una cuenta de Azure.
Agente: ¡Genial! A continuación, hablemos de su caso de uso específico. ¿Está buscando integrar Azure OpenAI en una aplicación existente o crear algo nuevo desde cero?
Cliente: Quiero crear un chatbot para nuestro centro de atención al cliente. Recibimos muchas consultas y me gustaría automatizar algunas de las respuestas.
Agente: ¡Excelente elección! Azure OpenAI es perfecto para eso. Puede utilizar el patrón de generación aumentada de recuperación (RAG). Combina Azure Cognitive Search y Azure OpenAI Service. El modelo RAG recupera información relevante de sus fuentes de datos y la envía al modelo GPT-3.5-turbo.
Cliente: ¡Vaya, eso es completo! Gracias, Alex. Seguiré estos pasos. ¿Hay algo más que deba tener en cuenta?
Agente: ¡De nada, Sarah! Sólo recuerde controlar su uso y costos.
Cliente: ¿Cómo funcionan los precios?
Agente: Los precios de Azure varían según la región y el uso.
Cliente: Muy bien, déjame verlo para asegurarme de que puedo estimar los costos. Mis jefes siempre están preocupados por los costes.
Agente: Bien, ¿hay algo más en lo que pueda ayudarte?
Cliente: ¡Nada, gracias Alex!
Agente: No dude en comunicarse si tiene más preguntas. ¡Qué tengas un lindo día!
</p>
</div>
<div class="tab-pane fade" id="v-pills-basque" role="tabpanel" aria-labelledby="v-pills-basque-tab">
Agentea: Kaixo, eskerrik asko Microsoft-en bezeroarentzako laguntza-zerbitzua deitzeagatik. Nire izena Alex da. Nola lagundu dezaket gaur?
Bezeroa: Kaixo, Alex. Nire izena Sarah da, eta Azure OpenAI erabiltzea interesatzen zait. Plataforma indartsua dela entzun dut, baina ez dakit nondik hasi. Prozesuan zehar gidatu al nauzu?
Agentea: Noski, Sarah! Pozik lagunduko nuke. Has gaitezen. Lehenik eta behin, mesedez eman al didazu informazioren bat? Ba al duzu dagoeneko Azure konturik?
Bezeroa: Bai, Azure kontu bat daukat.
Agentea: bikaina! Jarraian, hitz egin dezagun zure erabilera-kasu zehatzari buruz. Azure OpenAI lehendik dagoen aplikazio batean integratzea edo hutsetik zerbait berria eraiki nahi al duzu?
Bezeroa: gure bezeroarentzako arreta zentrorako txatbot bat eraiki nahi dut. Kontsulta asko jasotzen ditugu, eta erantzun batzuk automatizatu nahiko nituzke.
Agentea: Aukera bikaina! Azure OpenAI ezin hobea da horretarako. Retrieval Augmented Generation (RAG) eredua erabil dezakezu. Azure Cognitive Search eta Azure OpenAI Zerbitzua konbinatzen ditu. RAG ereduak zure datu-iturrietatik informazio garrantzitsua lortzen du eta GPT-3.5-turbo eredura elikatzen du.
Bezeroa: Wow, hori osoa da! Eskerrik asko, Alex. Urrats hauek jarraituko ditut. Ba al dago kontuan izan behar dudan beste zerbait?
Agentea: Ongi etorri, Sarah! Gogoratu zure erabilera eta kostuak kontrolatzea.
Bezeroa: Nola funtzionatzen du prezioak?
Agentea: Azure prezioak eskualdearen eta erabileraren arabera aldatzen dira.
Bezeroa: Ondo dago, utz iezadazu aztertzen kostuak kalkula ditzakedala ziurtatzeko. Nire kudeatzaileak beti kezkatuta daude kostuekin.
Agentea: Ados, beste zerbaitetan lagundu dezaket?
Bezeroa: Ezer ez, eskerrik asko Alex!
Agentea: Galdera gehiago izanez gero, jar zaitez harremanetan. Egun ona izan!
</p> </div>
<div class="tab-pane fade" id="v-pills-catalan" role="tabpanel" aria-labelledby="v-pills-catalan-tab">
Agent: Hola, gràcies per trucar al servei d'assistència al client de Microsoft. Em dic Alex. Com puc ajudar-te avui?
Client: Hola, Alex. Em dic Sarah i estic interessat a utilitzar Azure OpenAI. He sentit que és una plataforma potent, però no sé per on començar. Em pots guiar pel procés?
Agent: Per descomptat, Sarah! Estaré encantat d'ajudar. Comencem. En primer lloc, si us plau, em pots donar alguna informació? Ja teniu un compte Azure?
Client: Sí, tinc un compte Azure.
Agent: Genial! A continuació, parlem del vostre cas d'ús específic. Esteu buscant integrar Azure OpenAI en una aplicació existent o crear alguna cosa nova des de zero?
Client: vull crear un chatbot per al nostre centre d'atenció al client. Rebem moltes consultes i m'agradaria automatitzar algunes de les respostes.
Agent: Excel·lent elecció! Azure OpenAI és perfecte per a això. Podeu utilitzar el patró Retrieval Augmented Generation (RAG). Combina Azure Cognitive Search i Azure OpenAI Service. El model RAG recupera informació rellevant de les vostres fonts de dades i l'alimenta al model GPT-3.5-turbo.
Client: Vaja, això és complet! Gràcies, Alex. Seguiré aquests passos. Hi ha alguna cosa més que hauria de tenir en compte?
Agent: De benvinguda, Sarah! Només recordeu controlar el vostre ús i els vostres costos.
Client: Com funciona el preu?
Agent: el preu d'Azure varia segons la regió i l'ús.
Client: D'acord, deixa'm mirar-ho per assegurar-me que puc estimar els costos. Els meus directius sempre estan preocupats pels costos.
Agent: D'acord, amb alguna cosa més et pugui ajudar?
Client: Res, gràcies Alex!
Agent: no dubteu a contactar si teniu més preguntes. Que tinguis un bon dia!
</p> </div>
<div class="tab-pane fade" id="v-pills-galego" role="tabpanel" aria-labelledby="v-pills-galego-tab">
Axente: Ola, grazas por chamar ao servizo de atención ao cliente de Microsoft. Chámome Alex. Como podo axudarche hoxe?
Cliente: Ola, Alex. Chámome Sarah e estou interesado en usar Azure OpenAI. Oín que é unha plataforma poderosa, pero non sei por onde comezar. Podes guiarme polo proceso?
Axente: Por suposto, Sarah! Estaría encantado de axudar. Imos comezar. En primeiro lugar, podes proporcionarme algunha información? Xa tes unha conta de Azure?
Cliente: Si, teño unha conta de Azure.
Axente: xenial! A continuación, imos falar do seu caso de uso específico. Estás buscando integrar Azure OpenAI nunha aplicación existente ou crear algo novo desde cero?
Cliente: quero crear un chatbot para o noso centro de atención ao cliente. Recibimos moitas consultas e gustaríame automatizar algunhas das respostas.
Axente: Excelente elección! Azure OpenAI é perfecto para iso. Podes usar o patrón Retrieval Augmented Generation (RAG). Combina Azure Cognitive Search e Azure OpenAI Service. O modelo RAG recupera información relevante das túas fontes de datos e entrénaa ao modelo GPT-3.5-turbo.
Cliente: Vaia, iso é completo! Grazas, Alex. Seguirei estes pasos. Hai algo máis que deba ter en conta?
Axente: De nada, Sarah! Lembre-se de supervisar o seu uso e custos.
Cliente: Como funciona o prezo?
Axente: o prezo de Azure varía segundo a rexión e o uso.
Cliente: Está ben, permíteme mirar para asegurarme de que podo estimar os custos. Os meus xestores sempre están preocupados polos custos.
Axente: Vale, en algo máis che podo axudar?
Cliente: Nada, grazas Alex!
Axente: non dubide en poñerse en contacto se tes máis preguntas. Que teñas un día fantástico!
</p> </div>

</div> <!-- end tab-content-->
</div> <!-- end col-->
</div>
<!-- end row-->

<div class="row">
<div class="col-12">
<label for="text" class="form-label">Transcript:</label>
<p class="text-muted font-14">
Write or paste the call transcript here:
</p>
<textarea class="form-control" id="transcript" name="transcript" rows="9">@(Model?.Transcript ?? @"Write or paste some call transcript here.")
</textarea>
</div>
</div>
<div class="row">
<div class="col-4">
<p class="text-muted font-14">
or select any of the following sample transcripts:
</p>
</div>
<div class="col-8">
<button type="button" class="btn btn-info btn-right" onclick="loadExampleGA()">Galego</button>
<button type="button" class="btn btn-info btn-right" onclick="loadExampleCA()">Catalan</button>
<button type="button" class="btn btn-info btn-right" onclick="loadExampleEK()">Euskera</button>
<button type="button" class="btn btn-info btn-right" onclick="loadExampleES()">Español</button>
<button type="button" class="btn btn-info btn-right" onclick="loadExampleEN()">English</button>
</div>
</div>

<div class="col-6">
<div class="row mb-3">
<div class="col-12">
<label for="text" class="form-label">Prompt:</label>
<textarea class="form-control" id="prompt" name="prompt" rows="6">@(Model?.Prompt ?? @"Extract the following information from the phone conversation use will send in a bulleted points format:
<textarea class="form-control" id="prompt" name="prompt" rows="9">@(Model?.Prompt ?? @"Extract the following information from the phone conversation use will send in a bulleted points format:
1. Call Reason
2. Name of agent
3. Name of caller
Expand All @@ -173,7 +74,7 @@ Use the same language of the transcript to complete the fields.")

<div class="row">
<div class="mb-3">
<textarea class="form-control d-none" id="text" name="text" rows="9">@Model?.Text</textarea>
<textarea class="form-control d-none" id="text" name="text" rows="9">@Model?.Transcript</textarea>
</div>
<div class="d-grid">
<button type="submit" class="btn btn-lg btn-primary" onclick="submitForm()">Analyze call</button>
Expand Down Expand Up @@ -210,7 +111,7 @@ Use the same language of the transcript to complete the fields.")
<div class="row g-0 align-items-center">
<div class="col-md-12">
<div class="card-body">
<h2 class="header-title mt-0 mb-3">Text Analyze Result <span class="badge bg-success rounded-pill">Analysis Success</span></h2>
<h2 class="header-title mt-0 mb-3">Call Transcript Analyze Result <span class="badge bg-success rounded-pill">Analysis Success</span></h2>
<p class="text-muted font-16 mb-3" id="show-message-result">@Html.Raw(ViewBag.Message.Replace("\n", "<br />"))</p>
</div>
</div>
Expand Down
Loading

0 comments on commit bd5b97e

Please sign in to comment.