{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "bb8cd830db4a004e",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Nebula (Symbl.ai)\n",
    "[Nebula](https://symbl.ai/nebula/) is a large language model (LLM) built by [Symbl.ai](https://symbl.ai). It is trained to perform generative tasks on human conversations. Nebula excels at modeling the nuanced details of a conversation and performing tasks on the conversation.\n",
    "\n",
    "Nebula documentation: https://docs.symbl.ai/docs/nebula-llm\n",
    "\n",
    "This example goes over how to use LangChain to interact with the [Nebula platform](https://docs.symbl.ai/docs/nebula-llm)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "519570b6539aa18c",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Make sure you have API Key with you. If you don't have one please [request one](https://info.symbl.ai/Nebula_Private_Beta.html)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9f47bef45880aece",
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from langchain.llms.symblai_nebula import Nebula\n",
    "\n",
    "llm = Nebula(nebula_api_key=\"<your_api_key>\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88c6a516ef51c74b",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Use a conversation transcript and instruction to construct a prompt."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5977ccc2d4432624",
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from langchain.chains import LLMChain\n",
    "from langchain.prompts import PromptTemplate\n",
    "\n",
    "conversation = \"\"\"Sam: Good morning, team! Let's keep this standup concise. We'll go in the usual order: what you did yesterday, what you plan to do today, and any blockers. Alex, kick us off.\n",
    "Alex: Morning! Yesterday, I wrapped up the UI for the user dashboard. The new charts and widgets are now responsive. I also had a sync with the design team to ensure the final touchups are in line with the brand guidelines. Today, I'll start integrating the frontend with the new API endpoints Rhea was working on. The only blocker is waiting for some final API documentation, but I guess Rhea can update on that.\n",
    "Rhea: Hey, all! Yep, about the API documentation - I completed the majority of the backend work for user data retrieval yesterday. The endpoints are mostly set up, but I need to do a bit more testing today. I'll finalize the API documentation by noon, so that should unblock Alex. After that, I’ll be working on optimizing the database queries for faster data fetching. No other blockers on my end.\n",
    "Sam: Great, thanks Rhea. Do reach out if you need any testing assistance or if there are any hitches with the database. Now, my update: Yesterday, I coordinated with the client to get clarity on some feature requirements. Today, I'll be updating our project roadmap and timelines based on their feedback. Additionally, I'll be sitting with the QA team in the afternoon for preliminary testing. Blocker: I might need both of you to be available for a quick call in case the client wants to discuss the changes live.\n",
    "Alex: Sounds good, Sam. Just let us know a little in advance for the call.\n",
    "Rhea: Agreed. We can make time for that.\n",
    "Sam: Perfect! Let's keep the momentum going. Reach out if there are any sudden issues or support needed. Have a productive day!\n",
    "Alex: You too.\n",
    "Rhea: Thanks, bye!\"\"\"\n",
    "\n",
    "instruction = \"Identify the main objectives mentioned in this conversation.\"\n",
    "\n",
    "prompt = PromptTemplate.from_template(\"{instruction}\\n{conversation}\")\n",
    "\n",
    "llm_chain = LLMChain(prompt=prompt, llm=llm)\n",
    "\n",
    "llm_chain.run(instruction=instruction, conversation=conversation)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  },
  "vscode": {
   "interpreter": {
    "hash": "a0a0263b650d907a3bfe41c0f8d6a63a071b884df3cfdc1579f00cdc1aed6b03"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
