Make sure you select Text Generation Inference as the container type during deployment
==> integrations/llms-and-databases/perplexity-integration.md <==
# Perplexity Integration
### Overview
Perplexity is an advanced AI language model that leverages large language models to provide comprehensive and factual responses, making it a powerful tool for various applications, including content generation, language translation, summarization, and more.
### Generating a Perplexity API Key
To integrate Perplexity with the SkyDeck AI Platform, you need to generate an API key:
1. **Create an Account**: Register for a free account on the [Perplexity website](https://www.perplexity.ai/).
2. **Access API Keys**:
* Log in to your Perplexity account.
* Navigate to the settings.
* Click on the API tab.
3. **Generate a New Key**:
* Click on the "+ Generate" button to create a new API key.
### Adding the API Key to SkyDeck AI
To integrate Perplexity with SkyDeck AI, follow these steps:
1. **Log in to SkyDeck AI**: Access your SkyDeck AI Admin account.
2. **Navigate to Integrations**: Go to the integrations page.
3. **Add Perplexity Integration**:
* Click the "+Add Integration" button.
* Select "Perplexity" from the list of available integrations.
* Enter your Perplexity API Key.
* Configure any additional settings, such as selecting the desired Perplexity model.
4. **Save and Confirm**: After entering the API key and configuring settings, click "Save" to complete the integration.
### Supported Models
Perplexity offers several models, each optimized for different use cases and performance requirements. The latest models (as of September 2024) that SkyDeck supports:
#### Online Models
* **`llama-3.1-sonar-small-128k-online`**: Suitable for general online queries with moderate complexity.
* **`llama-3.1-sonar-large-128k-online`** and **`llama-3.1-sonar-huge-128k-online`** : Designed for more complex online queries requiring deeper contextual understanding.
#### Chat Models
* **`llama-3.1-sonar-small-128k-chat`**: Ideal for chat-based interactions with moderate complexity.
* **`llama-3.1-sonar-large-128k-chat`**: Optimized for more complex chat-based interactions.
### Verification of Successful Integration
After integrating Perplexity with the SkyDeck AI Platform, you should see Perplexity models available for selection in your SkyDeck AI GenStudio. The presence of these models indicates a successful integration.
### Conclusion
Integrating Perplexity with the SkyDeck AI Platform offers a robust set of features and capabilities, leveraging advanced language models to deliver accurate and reliable answers. Ensure you stay updated with the latest models and features to maximize the benefits of this integration. For additional assistance or inquiries, please refer to the [Perplexity Documentation](https://docs.perplexity.ai/) or contact their support team.
==> integrations/llms-and-databases/openai-integration.md <==
---
description: OpenAI (ChatGPT) integration with the SkyDeck AI Platform
---
# OpenAI Integration
## **OpenAI Integration with the SkyDeck AI Platform**
\
ChatGPT is an AI-powered chatbot developed by OpenAI. It is based on the GPT-4 language model and can generate human-like text, translate languages, and write different kinds of creative content. ChatGPT is a powerful tool for a variety of applications. OpenAI is a non-profit research company that develops and deploys AI in a safe and responsible way. Integrating with SkyDeck AI will give you access to all current models of ChatGPT.
### **Generating an OpenAPI API Key**
\
To use the OpenAI API, you need to generate an API key by following these 3 simple steps:
1. Create a free account on the OpenAI website by signing up here: [https://beta.openai.com/signup. ↗](https://beta.openai.com/signup) You can use your Google or Microsoft account to sign up, or create an account using an email/password combination.
2. Once you've signed up, visit your OpenAI key page here: [https://beta.openai.com/account/api-keys, ↗](https://beta.openai.com/account/api-keys) or click the menu item "View API keys."
3. Click the "Create new secret key" button to generate a new API key. This key gives you access to both GPT-4 and ChatGPT models, so you don't need separate API keys.
All done! Once you have your API key, you can use ChatGPT's LLM in the SkyDeck AI Platform.
### **Adding the API Key to the SkyDeck AI Control Center**
API Keys are added to the Control Center Integrations Screen
1. Login to or Create a SkyDeck AI Admin account here: [https://admin.skydeck.ai/](https://admin.skydeck.ai/)
2. Once you are signed in, visit the your integrations page here [https://admin.skydeck.ai/integrations/ ↗](https://admin.skydeck.ai/integrations/)’, or click on the “Integrations” in the menu
3. Click on “+Add Integrations” button and enter your API Key as instructed.
That’s it! You can now use the powerful SkyDeck AI tools and directly access the GPT-4 and ChatGPT models.
NOTE: You will be charged based on your monthly usage of the ChatGPT API. The cost structure is based on the number of tokens used, with 750 words (approximately 1000 tokens) being the minimum chargeable unit. The cost per 1000 tokens varies depending on the model used, with the current ChatGPT default model being GPT-3.5 Turbo. As of July 2023 you can start experimenting with $5 in free credit that can be used during your first 3 months. ChatGPT pricing for general use is very low, but if you plan to use the service regularly, you must add your credit card information and are advised to set up a usage limit on the OpenAI website.
OpenAPI ChatGPT Pricing [https://openai.com/pricing ↗](https://openai.com/pricing)
==> integrations/llms-and-databases/README.md <==
# LLMs and Databases
==> integrations/llms-and-databases/mistral-integration.md <==
# Mistral Integration
## Overview
Mistral is an AI research company that focuses on developing cutting-edge large language models with a strong emphasis on efficiency and scalability. Their mission is to make frontier AI ubiquitous, and to provide tailor-made AI to all the builders. This requires fierce independence, strong commitment to open, portable and customizable solutions, and an extreme focus on shipping the most advanced technology in limited time.
## Generating a Mistral API Key
To use the Mistral API, you need to generate an API key by following these simple steps:
1. Go to **La Plateforme** of Mistral at [https://console.mistral.ai/](https://console.mistral.ai/) and sign in. If you don't have an account, you can sign up there.
2. Once you have signed in, go to **API Keys**. Please note that you need to set up a [Billing Plan](https://console.mistral.ai/billing/) first to generate and use Mistral API keys.
3. Click on the **Create new key** button to generate a new API key. Provide a name and an expiration day for the token. Copy the token for later use as it will not be shown again.
All done! Once you have your API key, you can use Mistral's LLMs in the SkyDeck AI Platform.
{% hint style="info" %}
Note that the API key may take a few minutes to be usable, so you might see an error message if you immediately add it into the Control Center. Wait a few minutes after generating an API key before integrating Mistral with SkyDeck AI.
{% endhint %}
## Adding the API Key to the SkyDeck AI Control Center
API Keys are added to the Control Center Integrations Screen.
1. Login to or Create a SkyDeck AI Admin account here: [https://admin.skydeck.ai/](https://admin.skydeck.ai/)
2. Once you have signed in, visit the your integrations page here [https://admin.skydeck.ai/integrations/ ↗](https://admin.skydeck.ai/integrations/)’, or select **Integrations** in the sidebar.
3. In the LLM Integration page, click on the **Add Integration** button, choose Mistral as the Integration Service and enter your API Key in the Credentials key.
That’s it! You can now use the powerful SkyDeck AI tools and directly access the Mistral's models.
## Conclusion
Integrating Mistral with the SkyDeck AI Platform offers a robust set of features and capabilities, leveraging advanced language models from Mistral to deliver accurate and reliable answers. Ensure you stay updated with the latest Mistral's models and features to maximize the benefits of this integration. For additional assistance or inquiries, please refer to the [Mistral Documentation](https://docs.mistral.ai/) or contact their support team.
==> integrations/llms-and-databases/together-ai-integration.md <==
---
description: Together AI integration with the SkyDeck AI Platform
---
# Together AI Integration
## **Together AI Integration with the SkyDeck AI Platform**
Together AI hosts a wide range of open source large language models on their platform. Integrating with SkyDeck AI will give you access to all the chat models of Together AI.
### **Generating a Together AI API Key**
\
To use the Together AI API, you need to generate an API key by following these 3 simple steps:
1. Create a free account on the Together AI website by signing up here: [https://api.together.xyz/](https://api.together.xyz/).
2. Once you've signed up, visit your API key page here: [https://api.together.xyz/settings/api-keys](https://api.together.xyz/settings/api-keys). You should find your API key.
3. Once you have your API key, you can use Together AI's LLM in the SkyDeck AI Platform.
### **Adding the API Key to the SkyDeck AI Control Center**
API Keys are added to the Control Center Integrations Screen
1. Login to or Create a SkyDeck AI Admin account here: [https://admin.skydeck.ai/](https://admin.skydeck.ai/)
2. Once you are signed in, visit the your integrations page here [https://admin.skydeck.ai/integrations/ ↗](https://admin.skydeck.ai/integrations/)’, or click on the “Integrations” in the menu
3. Click on “+Add Integrations” button, select Together AI as the integration service, and enter your API Key in the Credential field.
That’s it! You can now use the powerful SkyDeck AI tools and directly access the Together AI models.
NOTE: You will be charged based on your monthly usage of the Together AI API. The cost structure is based on the number of tokens used. For more details on their pricing policy, visit [https://api.together.xyz/playground](https://api.together.xyz/playground).
==> integrations/llms-and-databases/database-integration.md <==
---
description: Integration with Amazon AWS hosted databases.
---
# Database Integration
## **Purpose**
\
By adding one or more integrations to public or private databases you enable advanced apps and other capabilities to securely query your data using the power of AI agents.
### **Support**
SkyDeck AI currently supports Postgresql databases and Redshift datawarehouses hosted on AWS. It is not particularly hard to support other data sources, but we did have to start somewhere. If you have another data source you wish to use, please reach out to support to prioritize an integration that meets your needs.
### **Directions**
**The following are the steps to integrate your database with SkyDeck AI:**
1. Obtain or put together a connection URL.
2. Add the connection URL to the Integrations section in Control Center.
3. Assign that integration to a smart tool or AI agent in the Tools section of Control Center.
### Connection URL
If you are lucky, a database admin hands you a ready-to-use standard URL that points to your database. If not, you will need to put one together to add access SkyDeck access to your database. These directions will make that task rather easy.
\
\
To set up a connection URL to a PostgreSQL or Amazon Redshift database hosted on Amazon AWS, you need several pieces of information about your database: the host, port number, database name, username, and password. Here's a step by step guide:
#### PostgreSQL Database
1. **Host**: This is the address of the server where your database is hosted. It should be something like `your-db-instance-name.region-name.rds.amazonaws.com` for AWS RDS PostgreSQL or `your-cluster-name.region-name.redshift.amazonaws.com` for Amazon Redshift.
2. **Port Number**: This is the port on which your database server is listening. The default port for PostgreSQL is 5432, and for Amazon Redshift, it's 5439.
3. **Database Name**: This is the name of the database you want to connect to.
4. **Username & Password**: These are the credentials you need to authenticate with the database.
The general format of a connection URL is as follows:
||CODE_BLOCK||
protocol://username:password@host:port/database
||CODE_BLOCK||
Here's how you can create a connection URL:
1. Start with the protocol, which is 'postgresql' for PostgreSQL and 'redshift' for Amazon Redshift:
||CODE_BLOCK||
postgresql://
||CODE_BLOCK||
2. Next, add your username and password, separated by a colon. If your username or password includes special characters, you'll need to URL encode them. For example, if your username is 'user' and your password is 'pass', it becomes:
||CODE_BLOCK||
postgresql://user:pass@
||CODE_BLOCK||
3. Then, add your host and port, separated by a colon:
||CODE_BLOCK||
postgresql://user:pass@your-db-instance-name.region-name.rds.amazonaws.com:5432/
||CODE_BLOCK||
4. Finally, add your database name:
||CODE_BLOCK||
postgresql://user:pass@your-db-instance-name.region-name.rds.amazonaws.com:5432/your-database-name
||CODE_BLOCK||
That's it! You've created your connection URL. Be sure to replace 'user', 'pass', 'your-db-instance-name.region-name.rds.amazonaws.com', '5432', and 'your-database-name' with your actual database details.
Remember not to share this URL with anyone, as it contains sensitive information like your username and password.
#### RedShift DWH
The URL for a Redshift database would be very similar, but with a couple of key differences:
1. The protocol would be 'jdbc:redshift' instead of 'postgresql'. This is because JDBC (Java Database Connectivity) is commonly used to connect with Redshift databases.
2. The default port for Redshift is 5439, not 5432.
Here's the general format for a Redshift connection URL:
||CODE_BLOCK||
jdbc:redshift://host:port/database
||CODE_BLOCK||
So, if you were to create a connection URL for Redshift, it would look something like this:
||CODE_BLOCK||
jdbc:redshift://user:pass@your-cluster-name.region-name.redshift.amazonaws.com:5439/your-database-name
||CODE_BLOCK||
Remember to replace 'user', 'pass', 'your-cluster-name.region-name.redshift.amazonaws.com', '5439', and 'your-database-name' with your actual database details.
### Adding Your Integration
Paste your connection URL in the "Credentials" section of Add Integration. You can select PostgreSQL for either a postgresql or Redshift database. You can use any name you want for the Integration, but we suggest you pick something that will help you identify the specific database associated.
### Accessing Your Data Through SkyDeckAI
Today users can access your database using the Analyst tools available to them in GenStudio. As an admin you can assign an integration to an analyst tool in Control Center's Tools section. You can then assign tags to that tool to ensure only authorized people have access to that tool and its database access in their SkyDeck AI GenStudio workspace.
Add a database integration to a tool that supports it in order to share access with your members of your organization.
#### Security Notes
* Create a read-only user (role) on your database to use with your SkyDeck AI integration. SkyDeck does not need write to your system and it is safest if you use credentials that do not have more rights than necessary. However, the user should be able to query the structure of your data system in order to understand it.
* Do not share the access URL as it contains confidential connection information.
* You can limit which users in your organization have access to each database by ensuring that tools that use it, such as a copy of Analyst Bob, are assigned tags that correspond only to uers who you wish to have access.
==> integrations/llms-and-databases/groq-integration.md <==
# Groq Integration
## Overview
Groq is revolutionizing the landscape of artificial intelligence with its fast AI inference capabilities, designed to empower developers and enterprises with instant intelligence. GroqCloud allows seamless integration with openly-available models like Llama 3.1, enabling users to harness the power of AI with minimal latency. With its innovative Language Processing Unit (LPU), Groq delivers unparalleled speed, affordability, and energy efficiency, fundamentally transforming how AI models are deployed in the cloud and on-premises. By making advanced AI technology accessible to all, Groq is driving a new wave of innovation, productivity, and discovery, while maintaining a commitment to open-source principles.
## Generating a Groq API Key
To use the Groq API, you need to generate an API key by following these simple steps:
1. Go to **GroqCloud** at [https://console.groq.com/](https://console.groq.com/) and sign in. If you don't have an account, you can sign up there.
2. Once you have signed in, go to **API Keys**. You can use a Free Plan with low rate limits APIs, or you can upgrade to higher plans for large-scale needs.
3. Click on the **Create API key** button to generate a new API key. Provide a name for the token. Copy the token for later use as it will not be shown again.
All done! Once you have your API key, you can use Groq's LLMs in the SkyDeck AI Platform.
## Adding the API Key to the SkyDeck AI Control Center
API Keys are added to the Control Center Integrations Screen.
1. Login to or Create a SkyDeck AI Admin account here: [https://admin.skydeck.ai/](https://admin.skydeck.ai/)
2. Once you have signed in, visit the your integrations page here [https://admin.skydeck.ai/integrations/ ↗](https://admin.skydeck.ai/integrations/)’, or select **Integrations** in the sidebar.
3. In the LLM Integration page, click on the **Add Integration** button, choose Groq as the Integration Service and enter your API Key in the Credentials key.
That’s it! You can now use the powerful SkyDeck AI tools and directly access the Groq's models.
## Conclusion
Integrating Groq with the SkyDeck AI Platform offers a robust set of features and capabilities, leveraging advanced language models from Groq to deliver accurate and reliable answers. Ensure you stay updated with the latest models and features to maximize the benefits of this integration. For additional assistance or inquiries, please refer to the [Groq Documentation](https://console.groq.com/docs/) or contact their support team.
==> integrations/llms-and-databases/vertex-ai-integration.md <==
# Vertex AI Integration
## Overview
Vertex AI is a fully-managed, unified AI development platform for building and using generative AI. Access and utilize Vertex AI Studio, Agent Builder, and 150+ foundation models. After integrating Skydeck.AI with Vertex AI, you will be able to use the Gemini models from Google in your workspace.
## Generating a service account credential
To enable Vertex AI and generate the necessary credential, you can follow these steps:
1. **Set up your Google Cloud account:** Go to the [Google Cloud Console](https://console.cloud.google.com/) and sign in with your Google account.
2. **Select a project:** At the top of the page, click on the project dropdown and select an existing project. If you don’t have a project, you’ll need to create one by clicking on "New Project" and following the prompts.
3. **Enable Vertex AI API:** Go to the [APIs & Services Dashboard](https://console.cloud.google.com/apis/dashboard) (you can choose it from the Menu in the Google Cloud Console), click on the "**+ ENABLE APIS AND SERVICES**" button, search for "**Vertex AI API**" in the API Library, and then enable the API for your project. Please note that Vertex AI API requires a project with a billing account, so you have to set it up [here](https://console.cloud.google.com/billing). You will be charged based on your usage of Vertex AI, so please refer to [their documentation](https://cloud.google.com/vertex-ai) for the latest updates.
4. **Create a Service Account and get the credential:** Go to the **IAM & Admin** section to create a new service account, assign the appropriate role to use Vertex AI (typically the Vertex AI Administrator role), and then generate a JSON key. You can visit this [link](https://developers.google.com/workspace/guides/create-credentials#service-account) for more details. Save the key securely and see the following section to add it to SkyDeck.AI platform. Here is a sample JSON key:
||CODE_BLOCK||json
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "your-private-key",
"client_email": "the-email-of-the-service-account",
"client_id": "the-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "your-client_x509_cert_url",
"universe_domain": "googleapis.com"
}
||CODE_BLOCK||
## Adding the credential to SkyDeck AI
API Keys are added to the Control Center Integrations Screen
1. Login to or Create a SkyDeck AI Admin account here: [https://admin.skydeck.ai/](https://admin.skydeck.ai/)
2. Once you have signed in, visit the your Integrations page here [https://admin.skydeck.ai/integrations/ ↗](https://admin.skydeck.ai/integrations/)’, or select **Integrations** on the sidebar.
3. In the LLM Integration page, click on the **Add Integration** button, choose **VertexAI** as the Integration Service, and enter your entire JSON Key in the Credentials field.
That’s it! You can now use the powerful SkyDeck AI tools and directly access the Gemini models.
## Conclusion
Integrating Vertex AI with the SkyDeck AI Platform offers a robust set of features and capabilities, leveraging advanced language models from Google to deliver accurate and reliable answers. Ensure you stay updated with the latest Gemini models and features to maximize the benefits of this integration. For additional assistance or inquiries, please refer to the [Vertex AI Documentation](https://cloud.google.com/vertex-ai/docs) or contact their support team.
==> integrations/llms-and-databases/anthropic-integration.md <==
# Anthropic Integration
## Overview
Anthropic is an AI research organization focused on building reliable and interpretable artificial intelligence systems that prioritize safety and alignment with human values. The company is dedicated to addressing the ethical and safety challenges posed by increasingly powerful AI systems, working to ensure that their models behave predictably and in accordance with human intentions.
Anthropic's LLMs, notably the "Claude" series, are designed to process and generate human-like text for a wide range of applications, including natural language understanding, reasoning, and dialogue. These models are developed with a focus on safety and usability, incorporating mechanisms to prevent harmful or biased outputs. As Anthropic continues to evolve its LLMs, it remains committed to creating AI systems that are transparent, interpretable, and aligned with ethical standards, making them useful for both commercial and research purposes.
## Generating an Anthropic API Key
To use the Anthropic API, you need to generate an API key by following these simple steps:
1. Go to the Anthropic Console at [https://console.anthropic.com/](https://console.anthropic.com/) and sign in. If you don't have an account, you can sign up there.
2. Once you have signed in, go to **Settings** and select [**API keys**](https://console.anthropic.com/account/keys).
3. Click the **Create Key** button to generate a new API key. Provide a name and a workspace for that key. Copy the token for later use as it will not be shown again.
All done! Once you have your API key, you can use Anthropic's LLMs in the SkyDeck AI Platform.
## Adding the API Key to the SkyDeck AI Control Center
API Keys are added to the Control Center Integrations Screen.
1. Login to or Create a SkyDeck AI Admin account here: [https://admin.skydeck.ai/](https://admin.skydeck.ai/)
2. Once you have signed in, visit the your integrations page here [https://admin.skydeck.ai/integrations/ ↗](https://admin.skydeck.ai/integrations/)’, or select **Integrations** in the sidebar.
3. In the LLM Integration page, click on the **Add Integration** button, choose Anthropic as the Integration Service and enter your API Key in the Credentials key.
That’s it! You can now use the powerful SkyDeck AI tools and directly access the Claude models.
## Conclusion
Integrating Anthropic with the SkyDeck AI Platform offers a robust set of features and capabilities, leveraging advanced language models from Anthropic to deliver accurate and reliable answers. Ensure you stay updated with the latest Claude models and features to maximize the benefits of this integration. For additional assistance or inquiries, please refer to the [Anthropic Documentation](https://docs.anthropic.com/) or contact their support team.
==> integrations/app-integrations/README.md <==
# App Integrations
==> integrations/app-integrations/rememberizer-integration.md <==
# Rememberizer Integration
### Introduction
GenStudio offers two types of Rememberizer integrations: one for individual members and another for an entire workspace through the Control Center. This guide provides a comprehensive overview of both integration processes, enhancing search and memory capabilities across your workspace.
### Steps to Authorize Rememberizer in GenStudio (Individual Members)
#### Step 1: Connect to Rememberizer
1. Go to the Rememberizer authorization page by clicking "Add account" to go to the Rememberizer authorization page.
2. Review the permissions that GenStudio will access, such as Mementos and Memory.
#### Step 2: Configure Mementos
1. Select the "Change" option next to Memento.
2. Choose or create a new memento from the available list.
3. Confirm your selection.
#### Step 3: Set Memory Preferences
1. Click on "Change" next to Memory.
2. Select your preferred memory settings (e.g., Read All/Write Own).
3. Confirm the settings
#### Step 4: Authorize
1. Once you've configured your settings, click "Authorize" to complete the connection.
### Steps to Authorize Rememberizer in Control Center (Workspace-Wide)
#### Step 1: Access Integrations
1. Navigate to the **Integrations** section.
2. Click on the **Apps** tab.
3. Locate "Rememberizer" and click **Add**.
#### Step 2: Follow Authorization Steps
* The authorization process will follow the same steps as for individual members.
* Once authorized, Rememberizer will be available for the entire workspace.
### Rememberizer Integration Usage
Once authorized, SkyDeck will:
* Automatically call the Rememberizer API. For more details, please visit the [Rememberizer API Documentation](https://docs.rememberizer.ai/developer/api-documentations).
* Use the response to enhance interactions with the language model (e.g., GPT 4o).
#### Contextual LLM Integration
* The retrieved information is used to improve responses. For example, asking "What is my account?" will provide personalized details using Rememberizer's context.
### Conclusion
By following this guide, you can effectively integrate and utilize Rememberizer within GenStudio, leveraging advanced search capabilities and personalized memory sharing to enhance your application experience.
==> integrations/app-integrations/slack-integration.md <==
# Slack Integration
To further enhance team collaboration, you can integrate Slack with Skydeck.ai to let your GenStudio conversations go directly to your Slack channel. This allows your team to collaborate seamlessly.
### Enable Slack from the Control Center
You must have admin access of your Slack workspace to perform this action. In the **Integrations** section of your Control Center, choose **Apps**, and then click the **Add** button of Slack.
After that, you will be redirected to a new page where you can allow SkyDeck.ai to access your Slack workspace. Click Allow and then check the Control Center again to check if Slack has been added successfully. This step is only required by the GenStudio workspace owner or admins. The following step can be done by any user in your workspace.
### Add SkyDeck.ai app to a Slack channel
In your Slack workspace, choose any channel that you want to receive GenStudio conversation messages, and add the **SkyDeck.ai** app to that channel. The channel can be public or private, and each one will have a different way to connect to Slack.
### Send messages to a public channel
For public channels, SkyDeck.ai has already been able to see all of them after you connect Slack in the Control Center, so you don't have to configure more. Any user in your GenStudio Workspace can choose to connect their conversations to a public Slack channel. Here are the steps they need to do:
1. Choose a conversation in the left sidebar and enable [Collaboration](../../genstudio-workspace/sharing-and-collaboration.md)
2. Toggle the **Share to Slack** button
3. In the **Pick a channel** dropdown, choose a public channel. Ensure that SkyDeck.ai app has been added to that channel as discussed in the previous section.
4. Click the **Send** button next to the dropdown. If successful, you will see new messages in that Slack channel posted by SkyDeck.ai. If you have not added the app, you will see a message right under the dropdown explaining why.
### Authorize Slack to send messages to a private channel
For private channels, each user will have to authorize with Slack. The steps are slightly different:
1. Choose a conversation in the left sidebar and enable [Collaboration](../../genstudio-workspace/sharing-and-collaboration.md)
2. Toggle the **Share to Slack** button
3. In the **Authorized applications**, click **Authenticate** right next to Slack. The user will be redirected to a new page to authorize Slack.
4. If the authorization succeeds, the **Pick a channel** dropdown will now contain additional private channels that the user is in and has the SkyDeck.ai app. User can now connect their private channel with a GenStudio conversation.
### Disconnect the channel
In both cases, if you want to disconnect the channel and the conversation, you can either click the red **End share** button in the popup above, or remove the SkyDeck.ai app from that channel.
Click the End share button at the below right corner of the popup
## Upgrading or Changing Your Plan
1. **Find the "Upgrade" or "Change Plan" Button:** If you are on a free trial or your plan has expired, you'll see an "Upgrade" button. If you are on a paid plan, you'll see a "Change Plan" button.
2. **Explore Available Plans:** Clicking the button will open a modal window or redirect you to a new page where you can view and select different subscription plans.
3. **Select a New Plan:** Choose the plan that best suits your needs.
4. **Confirm Your Selection:** Follow the prompts to confirm your new plan selection.
Plan Selection Modal
## Important Notes
* Upgrading your plan will take effect immediately.
* Downgrading your plan might take effect at the end of your current billing cycle.
* You will receive a confirmation message once your plan change is successful.
## **Invoices and Receipts**
To obtain an invoice or receipt for your SkyDeck.ai subscription:
1. Click on the "Change Plan" option within your billing settings. This will redirect you to the Stripe platform.
2. Within Stripe, locate the "Invoice History" section at the bottom of the page.
3. Click on the specific payment record you wish to view.
4. On the subsequent screen, you will find options to download either an invoice or a receipt for the selected transaction.
If you encounter any issues while upgrading or changing your plan, please contact [support@skydeck.ai](mailto:support@skydeck.ai) for assistance.
==> control-center/billing/model-usage-prices.md <==
---
description: >-
This section provides information about the pricing for different AI models
used within SkyDeck.ai. These prices are applied to your prepaid credit
balance.
---
# Model Usage Prices
## Understanding Model Pricing
Each AI model has its own pricing structure, which is based on the number of tokens used.
* **Tokens:** Tokens are the basic units of text that AI models process.
* **Input Tokens:** Tokens used when you provide text to the AI model.
* **Output Tokens:** Tokens generated by the AI model as a response.
## Viewing Model Usage Prices
1. **Navigate to the Billing Section:** Go to the "Account" tab and then select "Billing".
2. **Model Price Table:** On the billing page, you'll find a table displaying the model usage prices. The table includes the following information:
* **Provider:** The provider of the AI model.
* **Model:** The name of the specific AI model.
* **Input Price:** The price per 1 million input tokens.
* **Output Price:** The price per 1 million output tokens.
* **Effective Date:** The date when the price became effective.
* **Expired Date:** The date when the price expired (if applicable).
Model Price Table
## Important Notes
* Prices are subject to change.
* The prices are applied to your prepaid credit balance.
* Your credit balance is reduced based on the number of input and output tokens used.
If you have any questions about model usage prices, please contact [support@skydeck.ai](mailto:support@skydeck.ai) for assistance.
==> control-center/billing/README.md <==
---
description: >-
This section provides information about how billing works within SkyDeck.ai.
Here you can manage your subscription, purchase additional credits, and
understand your current plan.
---
# Billing
## Key Features
* **View Current Plan:** See details about your current subscription, including the plan name, number of seats, and renewal date.
* **Buy Credits:** Purchase additional credits to use for various services within GenStudio.
* **Upgrade/Change Plans:** Explore different subscription plans and upgrade or downgrade your current plan.
* **Manage Seats:** See the number of member seats available in your current plan.
* **View Model Usage Prices:** Understand the pricing for different AI models.
## Getting Started
To access the billing section, navigate to the "Account" tab and select "Billing".
Control Center Billing Tab
==> control-center/billing/buy-credits.md <==
---
description: >-
This section explains how to purchase additional credit for your account.
Credit are used to access various LLMs within GenStudio.
---
# Buy Credit
## Overview
Credit are a form of prepaid currency used to access AI features within GenStudio. When you use AI models, your credit balance is reduced based on the number of tokens used by the model. You can purchase additional credit at any time. **Only account owners on a paid plan can purchase additional credit.**
## Steps to Purchase Credit
1. **Navigate to the Billing Section:** Go to the "Account" tab in the SkyDeck.ai Control Center, then select "Billing".
2. **Click the "Buy Credit" Button:** The "Buy Credit" button is only visible to account owners on a paid plan. Click on it if available.
Buy Credit Button
3. **Enter the Amount:** A modal window will appear. Enter the amount of credit you wish to purchase in the input field.
Buy Credit Modal
4. **Confirm Your Purchase:** Click the "Buy Credit" button in the modal.
5. **Confirmation:** You will see a confirmation message if your purchase was successful. The transaction might take a moment to process. Your credit balance will be updated shortly.
## Important Notes
* Credit is non-refundable.
* The minimum amount you can purchase is $1.
* The maximum amount you can purchase is $100,000.
* Credit is consumed based on your usage of LLMs within GenStudio.
If you encounter any issues while purchasing credit, please contact [support@skydeck.ai](mailto:support@skydeck.ai) for assistance.
==> control-center/billing/free-trial.md <==
---
description: This section provides information about the free trial period for new users.
---
# Free Trial
## Free Trial Details
* The free trial **lasts for 28 days**.
* During the trial, you have access to all GenStudio features.
* You have **100 member seats** during the trial.
* **No payment is required** to start the free trial.
## Trial Status
You can check your trial status in the billing section.
1. **Navigate to the Billing Section:** Go to the "Account" tab and then select "Billing".
2. **Trial Information:**
* If you are currently in the trial, you will see the remaining days of your free trial and the end date.
Free Trial
* If the trial has ended, you will see a notification that your free trial is over and your access to GenStudio is blocked.
Free Trial Expires
## What Happens After the Trial?
Once the free trial ends:
* Your access to GenStudio will be blocked.
* You will need to upgrade to a paid plan to continue using GenStudio.
* Your data will be retained, but you will not be able to access it until you upgrade.
## How to Upgrade
If your free trial has ended, you will be prompted to upgrade to a paid plan on the billing page. Please refer to the [Plans and Upgrades section](plans-and-upgrades.md) for more details on how to upgrade.
## Important Notes
* The free trial is only available once per account.
* You may be asked to provide payment information when you upgrade to a paid plan.
If you have any questions about the free trial, please contact [support@skydeck.ai](mailto:support@skydeck.ai) for assistance.
==> control-center/setup-guide/set-up-account.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Set Up Account
From the **Account** page, you can select the **Company Profile** or **Billing** tabs.
***
### Account Information
Within the **Company Profile** tab, you can fill out the following fields:
* **Account Name** – Add your company name
* **Subdomain** – Select the subdomain you would like to use for SkyDeck AI — for example, google.skydeck.ai
* **Timezone** – Choose the appropriate timezone
* **Upload your logo** – Upload a PNG or JPEG image that is at least 100x100 pixels and less than 10MB in size.
When these four fields are complete, click **Save**. The page will then update to provide a link to your current workspace URL.
==> control-center/setup-guide/README.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Setup Guide
Upon creating your SkyDeck AI account, you'll be introduced to the Setup Guide. This guide outlines the 5 core steps that ensure you get the most out of your SkyDeck AI experience. Whenever you need a refresher or want to check your progress, the Setup Guide is there to assist.
* [**Set Up Account**](set-up-account.md)
* [**Set Up Integrations**](set-up-integrations/)
* [**Set Up Security**](security/)
* [**Organize Teams**](organize-teams/)
* [**Curate Tools**](curate-tools/)
* [**Manage Members**](manage-members/)
==> control-center/setup-guide/organize-teams/add-new-group.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Add New Group
Click on the **Add tag** button and a popup will appear. Provide a name for a high level group within your organization. Press **Enter** or click on the Add button to create the tag.
***
> **Tip** – Create one or two high level groups, then add a new group with more tags if you need more granular access control.
==> control-center/setup-guide/organize-teams/README.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Organize Teams
In SkyDeck.AI Control Center, tags are a way to organize the members of your company. A tag (or group) represents a team within your organization. You can assign a tag to a member or a tool, and members can only use tools that are assigned the same tag.
Select **Organize** from the sidebar. From this page, you can create tags to define and structure various teams within your organization. You will notice that the **All** tag already exists and cannot be removed. This is the default tag that applies to all members of your organization.
==> control-center/setup-guide/organize-teams/remove-groups.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Remove Groups
If you need to remove specific tags, click on the **Trash** icon next to the tag name and confirm the deletion. This action will also remove all the tag associations and cannot be undone.
==> control-center/setup-guide/manage-members/edit-members.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Edit Members
After adding members to your workspace, you can manage them such as changing displayed names, assigning tags, revoking accesses, etc. Each action may be available or not depending on the selected members and their current states (which is implied by their Guide actions).
### Change displayed name
You can change the name of any member after they are added to your workspace. Select one member from the list, click on the **Edit** button, change the user's name and click **Save**.
### Assign Admin role
A member can be granted the admin role, and they will be able to access Control Center of your organization. Select one member from the list, click on the **Edit** button, toggle the **Administrator role** button and click **Save**. Then that user can sign in the Control Center and manage the account.
### Assign tags
[Tags (or groups)](../organize-teams/) are used to curate which [AI tools](../curate-tools/system-tools.md) are accessible by whom. They can also provide groups for analytics and reporting. Members can be assigned multiple tags. Typically tags will define roles or departments in your organization.
There are 2 ways to assign tags to a user.
You can directly assign or remove tags of a user on the member list. Choose one member (without needing to select the checkbox), and in the **Tags** column, click the "+" icon. You can then see the current tags assigned to that member and will be able to assign or remove the tags by simply checking/unchecking the tags. The All tag is enabled by default for all members.
Assign tags on the member list
The second way is to select a member by clicking a checkbox next to their name and click on the **Edit** button. You can then see the same interface as the above option, and you can manage the tags similarly. Once changes are complete, click **Save**.
Assigning tags in Edit popup
Removing every tag from a member will remove their access to all tools and remove them from all reporting groups. You might wish to do this to limit access to a minimal level. Or to remove a member from global reports. Reports can still be produced for such members by naming them explicitly.
### Revoke access
You can revoke access of your members from GenStudio Workspace, after which they won't be able to it anymore. Select one or several invited members, click on the **Revoke** button and confirm the action. When the access is revoked, the user is still in the member list with the Guide action of **Invite**. You might want to invite them again later, so they are not removed completely.
### Delete a member
If you want to completely remove some members, select them and click on the **Delete** button. Once deleted, they will not appear on the list anymore. You will have to re-add them later if you want to using the [Add member](add-members.md) button.
### Transfer ownership
If the owner wish to transfer the ownership of the account to another user, they can select one admin and click on the **Transfer Ownership** button.
==> control-center/setup-guide/manage-members/import-file.md <==
---
layout:
title:
visible: true
description:
visible: true
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Import File
Before you import, check that your CSV file has the **name** and **email** fields in the following format:
> **Tip** – Your file must be in CSV format or SkyDeck AI will not accept your import.
***
Select **Import File** tab in the Add member popup. Then click **Upload File** from the pop-up window and locate your CSV file.
If the import is successful, you will see a **Success banner** at the top of the screen, and the page will populate with the new members' information.
{% hint style="info" %}
You can optionally include a third field named **tags** in the CSV file to assign tags to the added members. If not, you can [assign them later](edit-members.md).
{% endhint %}
==> control-center/setup-guide/manage-members/invite-members.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Invite Members
After adding members to SkyDeck.AI, they are not able to use your workspace yet. Their current Guide action is **Invite**, which indicates that you as an admin or owner will have to invite them by sending an email.
To invite members to use the [GenStudio workspace](https://eastagile.skydeck.ai/), check the first box next to **Name and Email** to select all members or select individual checkboxes for individual members. Then, the **Invite** button will appear at the top of the page. Click on that button to send email invites to all of the selected members.
In the pop-up window, click **Confirm**.
After that, their Guide action will change to **Wait**, which means that you will be waiting for the members' responses. You can also resend the emails for those users if they miss their previous emails. After a member completes their signup process, their Guide action will change to **OK**, and they will be able to access your GenStudio workspace. You cannot resend an email to a member with Guide action of OK.
If the previous link expires, the Guide action will change to **Re-invite**. For more details about each Guide action, please refer to [.](./ "mention").
==> control-center/setup-guide/manage-members/README.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Manage Members
## Overview
Select **Members** from the sidebar. From this page, you can manually add members, import member files, send invites to members, and assign tags to members.
Add people to Members to invite them and manage their roles in your SkyDeck AI
At the top of the screen you will see guidance about your account in terms of having enough paid seats to invite more members.
## Available Actions
The buttons (Add Member, Export members, Transfer Ownership, Edit, Invite, Revoke, Delete, Cancel) will be active or inactive depending on whether they are relevant to the members you have checked (or not checked) in the list below.
If you have not selected any members then relevant actions at the moment will be to add a single person via email or import a csv file of people to invite, and to export the current members of your workspace.
If you have selected one or more member, some actions are available on the list page such as inviting or revoking access. More advanced features that take up more space to work with are found using the **Edit** button. In particular, this is where Role and Tags can be changed to manage permissions within Control Center and access to tools and integrations via the GenStudio workspace.
All these actions will be discussed more in the following sections, which explain what can be done in the Members page.
## Guide action
In the list of members, pay particular attention to the **Guide** column. This provides a quick suggestion about what you should do next with that particular person.
There are different Guide actions:
1. When a member is added, the Guide action is **Invite**. We need to invite that member.
2. When a member is invited, the Guide action is **Wait**. We need to wait for that member to accept their email invitation.
3. When a member accepts their invitation, the Guide action is **OK**. It is ok now, we don't need to do anything more.
4. When a member's invitation expires, the Guide action is **Re-invite**. We need to re-invite them by sending another email.
5. When a member is revoked, they are still in the list, and the Guide action is back to Invite because you might want to invite them again next.
## Roles
A member can have one or multiple roles, each granting different levels of access to the Control Center and GenStudio Workspace. The roles are defined as follows:
* Member: Grants access to the GenStudio Workspace, provided the user has been invited and has set up their account.
* Admin: Provides access to the Control Center, enabling the management of the account, integrations, security, tags, tools, and members.
* Owner: Includes all admin permissions, plus the ability to manage billing, delete the account, and transfer ownership to another admin.
==> control-center/setup-guide/manage-members/add-members.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Add Members
Click on the **Add members** button on the Members page and then enter the new member’s **Name** and **Email**. You can also [Import a file](import-file.md) to add multiple members at the same time.
==> control-center/setup-guide/set-up-integrations/README.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Set Up Integrations
Head back to the Setup Guide and click **Add Integration** or select **Integrations** from the sidebar. On the Integrations page, click on the **Add Integrations** button.
In the **Add Integration** pop-up window, fill out the following fields:
* **Integration Service** – Choose an LLM service such as OpenAI, VertexAI, Anthropic... or a database service from the dropdown menu.
* **Integration Name** – Create a recognizable name for your integration.
* **Credentials** – Enter your [API credentials](integration-assistance.md).
==> control-center/setup-guide/set-up-integrations/integration-assistance.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Integration Assistance
When you select a service (LLM or SQL database), a prompt labeled **Where can I get these credentials?** will appear. This is a dynamic link that directs you to the specific documentation for the selected service, guiding you on how to generate or find your API key.
As you switch between LLM Services, the link updates accordingly, ensuring you always have quick access to the right information within SkyDeck AI.
This information on public pay-as-you-go conversational services is also linked here for easy reference:
* [**OpenAI**](../../../integrations/llms-and-databases/openai-integration.md)
* [**Vertex**](https://developers.google.com/workspace/guides/create-credentials#service-account)
* [**Anthropic**](https://docs.anthropic.com/claude/reference/getting-started-with-the-api)
* [**HuggingFace**](../../../integrations/llms-and-databases/huggingface-integration.md)
==> control-center/setup-guide/security/README.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Set Up Security
Select **Security** from the sidebar.
==> control-center/setup-guide/security/authentication-setup.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# Authentication Setup Guide
## Guidance
The members you invite to use the GenStudio workspace need to authenticate themselves when they initially sign up and when they later sign in. You can choose one or more allowed methods that are consistent with the way users normally identify themselves in your organization. Enterprise Single Sign On (SSO) methods are available in advanced plans.
### Google Authentication
If your organization has assigned IDs to your team such as Jane.Doe@yourcompany.com then you should use one (and just one) of our SSO methods. If your organization is a Google Workspace user then choose “Google” as an allowed authentication method.
### Microsoft Authentication
Choose “Azure AD” if your organization uses Microsoft’s enterprise Azure AD (Active Directory) authentication service (soon to start being called Microsoft Entra ID). This usually applies to business or academic deployments of Microsoft oriented SSO. Do not confuse this with the Microsoft individual consumer authentication method called “Microsoft Account” assigned to individuals when they sign up for Outlook.com, Microsoft 365, Xbox, etc. A consumer Microsoft account holder will not be able to sign in with Azure AD.
With Azure Active Directory, Microsoft provides the identity platform as a service but you can modify some of the configuration and settings, such as adding your own custom domain name (to get @yourcompany.com) or requiring multi-factor authentication. Your Azure Active Directory instance is available via the Azure Portal and other management tools like PowerShell, the Azure CLI and the REST API.
### Pick One SSO
If yours is a Google workspace shop, pick Google athentication. If yours is a Microsoft identity service shop, pick AD. This is the “Single” in SSO. It is the way you would primarily want members to sign in and sign up.
### Alternate Authentication
If you do not have any single source of identity, or use a method we do not support (contact us and let us know) then you might choose multiple methods or all methods for authentication. Or if members will join your GenStudio workspace who are not part of your regular organization you will need to choose alternative authentication methods for them to use.
Generally, if your organization uses Microsoft Azure AD, you might choose email or email and Google as supported authentication. If your organization uses Google authentication, you might add email to allowed options.
One downside to allowing alternative authentication methods is that some of your organization members might become confused and try to sign in with an alternative method. You might find it easier to manage allowing only your primary authentication method and providing identities (email addresses) to outside users you invite to your workspace.
**TL;DR**
- Email: Useful for 3rd party users or for hetrogeneous teams.
- Azure AD: The primary choice for organizations with enterprise Microsoft authentication.
- Google: Useful for 3rd party users, hetrogeneous teams, or organizations using Google Workspace.
==> control-center/setup-guide/curate-tools/system-tools.md <==
---
layout:
title:
visible: true
description:
visible: false
tableOfContents:
visible: true
outline:
visible: true
pagination:
visible: true
---
# System Tools
SkyDeck AI's [GenStudio workspace](https://eastagile.skydeck.ai/) comes with several default AI tools. Here's a quick overview of these tools to help you understand how to set up your permissions.
Icon
Name
Description
SQL Assistant
Provide the DDL that defines the tables in your database, then ask your SQL Assistant to write SQL code to produce any result.
Legal Agreement Review
Evaluate a clause in your legal document. Have it explained to you. Modify it to change the document’s provisions.
Strategy Consultant
Assists users by generating thoughtful responses to a specific question that lead you through a consultative approach to the request.
Teach Me Anything
This AI tutor will provide a lesson on any topic under the sun. You can choose the teaching style, language, and sophistication of the lesson.
Pair Programmer
Your AI pair programmer will review your code, help you add new features, modify existing features, add test coverage, add comments or documentation, and more.
Image Generator
Generated an image based on the description with OpenAI's DALL-E model.
A text-based user interface with text generated by our app.
You add your custom tool json inside Genstudio.
Upload json to define a custom tool
\
\
Here is the actual json that you would update in a file (i.e. text-based-ux-designer.json).
||CODE_BLOCK||json
{
"version": "0.1",
"metadata": {
"avatar": "",
"creator": {
"name": "Inspired by Khoa Tran",
"email": "admin@eastagile.com",
"organization": "East Agile"
},
"timestamp": "2023-06-01T10:00:00Z",
"variables": [
{
"name": "Feature Description",
"type": "text",
"default": "",
"description": "A brief description of the feature or functionality."
},
{
"name": "UI Components",
"type": "text",
"default": "Anything appropriate and conventional",
"description": "The type of user interface components (e.g., radio button, multi-select list)."
}
],
"parameters": {
"top_p": 1,
"max_tokens": 1024,
"temperature": 0.7,
"presence_penalty": 0,
"frequency_penalty": 0
},
"avatar_type": "base64",
"description": "This tool generates a text-based user interface based on your description and user interface components specified.",
"prompt_name": "Text-based User Interface Generator",
"usage_notes": "Provide a description of what sort of interface, feature, or app you want to generate (Feature Description) and any specific type of user interface elements you wish to use (UI Components). This application is designed to support AI Driven Development (AiDD) as practiced by East Agile https://eastagile.com.",
"model_version": [
"gpt-3.5",
"gpt-4",
"claude",
"palm"
],
"expected_output": {
"type": "text"
}
},
"model_prompt": "Generate a text-based user interface with wording for the following feature or functionality:\n\nFeature Description: {{Feature Description}}\nUser Interface Elements: {{UI Components}}.\n\nPlease follow these best practices for creating effective UX writing:\n1. Make it usable: Prioritize functionality and ease of use over clever language or unconventional design.\n2. Make it helpful: Provide useful information that guides users and helps them accomplish their goals.\n3. Make it accessible: Use simple, clear language and conentional design elements that make it easy for all users to understand, including those with disabilities.\n4. Make it clear: Avoid jargon and ambiguity; users should be able to understand the content and UI quickly and easily. When possible UI affordances should be obvious without needing to read text.\n5. Make it appropriate: Consider the cultural background and context of your users, if provided, and ensure the content is inclusive and respectful.\n6. Use the active voice: Prompt users to take action by using active, direct language.\n7. Write positively: Focus on affirmative statements and avoid negative phrases unless absolutely necessary.\n8. Be concise: Keep sentences short and to the point, eliminating unnecessary words and phrases.\n9. Perform constant A/B testing: Continuously test and refine the content to ensure it is effective and user-friendly.\n10. Keep brand voice and tone consistent: Ensure the content aligns with the overall brand personality and maintains a consistent tone throughout the user experience.\n11. Use action-oriented language: Encourage users to take action by using language that is clear, direct, and focused on specific tasks.\n12. Maintain contextual relevance: Provide relevant context to ensure the content is easily localizable and translatable for different languages and cultures.\n\nGenerated UX Writing Content:\n"
}
||CODE_BLOCK||
You could create your own icon and enter it as a base64 block of text to this json. Otherwise a nice default will be used.
==> developers/develop-your-own-tools/json-format-for-smart-tools.md <==
---
description: A portable way to share SkyDeck.AI smart tools written in Python code
---
# JSON Format for Smart Tools
## Overall
To create a smart tool on SkyDeck.AI, you need to upload a set of files according to the specifications mentioned in the File Structure section. Once uploaded, our platform will perform the initial setup, which may take a few minutes. Afterward, the tool will be available in the GenStudio Workspace.
## File Structure
### \.json
The tool's behavior is also configured through a JSON file. Here is a brief overview of the key fields in the configuration:
* **version**: The current version of the tool.
* **tool\_name**: The name of the tool. This name should be unique in your workspace.
* **tool\_code**: Contains the Python code to be executed. More details on this field will be on the next section.
* **description**: A brief description of what the tool does.
* **usage\_notes**: Instructions on how to use the tool.
* **model\_version**: Specify the models that are allowed to use for follow-up questions. To specify all models, use _\["gpt-4", "gpt-3.5", "claude", "chat-bison"]_.
* **creator**: Information about the creator of the tool, including name, email, and organization.
* **variables**: An array of variables used by the tool. Each variable has a name, description, and default value. The order of variables in the UI follows the order in this array.
* **expected\_output**: The type of output produced by the tool. During the development stage, the value should always be text.
* **avatar\_type**: The format of the avatar used in the tool's UI.
* **timestamp**: The date and time when the tool was last updated.
* **requirements:** specifies the required packages to run the script in tool\_code.
* **avatar**: the string representing the logo of this tool
### tool\_code convention:
This script outlines the functioning of your tool. The main component of this script is the _execute_ function, which has the following requirements:
* The function should have a single input parameter called _variables_, which is a dictionary. Each key in this dictionary corresponds to a field that the user would input into your tool.
* The function should return a string, which will be displayed as the response on the GenStudio UI.
## Example Tools
### Image generation using DALL-E 2
**Description:**
This tool accepts an image description as input and generates a corresponding URL for the image. The output includes the URL along with an expiration note. The tool functions by sending the query to the OpenAI DALL-E API and retrieving the response.
**Input:**
* Description: Image description, e.g., "A white furry cat"
**Output:**
* A message with the generated URL for the image along with the expiration note.
#### Python script (which would be a field inside image\_generation.json):
||CODE_BLOCK||python
import openai
def execute(variables):
openai.api_key = ''
description = variables['Description']
response = openai.Image.create(
prompt=description,
n=1,
size="1024x1024"
)
image_url = response['data'][0]['url']
return f"Here is the link to your image:{image_url}. The link will expire in 1 hour."
||CODE_BLOCK||
#### image\_generation.json
||CODE_BLOCK||json
{
"version": "0.1",
"metadata": {
"tool_name": "Image generation",
"tool_code": "import openai\n\ndef execute(variables):\n openai.api_key = ''\n description = variables['Description']\n response = openai.Image.create(\n prompt=description,\n n=1,\n size=\"1024x1024\"\n )\n\n image_url = response['data'][0]['url']\n return f\"Here is the link to your image:{image_url}. The link will be expired in 1 hour.\"\n",
"description": "Generated an image based on the description with OpenAI's DALL-E model.",
"usage_notes": "Describe the image in detail and put it in the description field. An URL of the image will be returned. The lifetime of the URL is about 1 hour, so make sure to download it before expired",
"model_version": ["gpt-3.5","gpt-3.5-turbo", "gpt-4", "claude"],
"creator": {
"name": "SkyDeck AI",
"email": "skydeck@eastagile.com",
"organization": "East Agile"
},
"variables": [
{
"name": "Description",
"description": "Image description",
"default": "a white siamese cat"
}
],
"expected_output": {
"type": "text"
},
"avatar_type": "base64",
"timestamp": "2023-05-23T10:00:00Z",
"requirements": "openai>=0.27.4",
"avatar": ""
}
}
||CODE_BLOCK||
### Real-time weather report with Open-Meteo API
**Description**:
This tool leverages the Open-Meteo API to provide real-time weather information based on users' questions. By asking a question about the weather, such as temperature, precipitation, or wind conditions, the tool retrieves the most relevant and up-to-date data.
The functioning of this tool relies on APIChain - a feature from the LangChain library - to access the Open-Meteo API documentation. This enables the tool to learn how to make the correct API calls and retrieve the required information seamlessly.
**Input**:
* Question: Ask a specific question about the weather, e.g., "What is the current temperature in New York City?"
**Output**:
* A response providing the requested weather information.
#### Python script (which would be a field inside weather\_reporter.json):
||CODE_BLOCK||python
from langchain.chains.api import open_meteo_docs
from langchain.chat_models import ChatOpenAI
from langchain.chains import APIChain
def execute(variables):
question = variables['Question']
llm = ChatOpenAI(
model_name='gpt-3.5-turbo',
openai_api_key=''
)
api_chain = APIChain.from_llm_and_api_docs(
llm, open_meteo_docs.OPEN_METEO_DOCS, verbose=False
)
result = api_chain.run(question)
return result
||CODE_BLOCK||
{% hint style="info" %}
Note that Langchain is now integrated with Rememberizer. See [https://python.langchain.com/docs/integrations/retrievers/rememberizer/](https://python.langchain.com/docs/integrations/retrievers/rememberizer/)
{% endhint %}
#### weather\_reporter.json
||CODE_BLOCK||json
{
"version": "0.1",
"metadata": {
"tool_name": "Weather Reporter",
"tool_code": "from langchain.chains.api import open_meteo_docs\nfrom langchain.chat_models import ChatOpenAI\nfrom langchain.chains import APIChain\n\n\ndef execute(variables):\n question = variables['Question']\n llm = ChatOpenAI(model_name='gpt-3.5-turbo',\n openai_api_key='')\n api_chain = APIChain.from_llm_and_api_docs(\n llm, open_meteo_docs.OPEN_METEO_DOCS, verbose=False)\n result = api_chain.run(question)\n return result\n",
"description": "Leverage the Open-Meteo API to retrieve real-time weather details",
"usage_notes": "Enter your weather-related question in the provided field",
"model_version": ["gpt-3.5", "gpt-3.5-turbo", "gpt-4", "claude"],
"creator": {
"name": "SkyDeck AI",
"email": "skydeck@eastagile.com",
"organization": "East Agile"
},
"variables": [
{
"name": "Question",
"description": "Inquire about the weather conditions",
"default": "What is the current temperature in Munich, Germany, expressed in degrees Celsius?"
}
],
"expected_output": {
"type": "text"
},
"avatar_type": "base64",
"timestamp": "2023-07-13T10:00:00Z",
"requirements": "openai>=0.27.4\nlangchain>=0.0.229",
"avatar": ""
}
}
||CODE_BLOCK||
## Limitations
AWS Lambda only allows a function to run for a maximum of 15 minutes and 10GB of RAM. Therefore, the tools should finish their execution within this constraint.
==> developers/develop-your-own-tools/json-format-for-llm-tools.md <==
---
description: A Portable Way to Share Tools
---
# JSON Format for LLM Tools
## Introduction
Sharing a tool in a way that could be quickly added to a program or tool editor would be greatly improved with a standard way to represent a tool and how to use it. We want to enable features such as the following:
* An icon to visually represent the tool
* Metadata for the prompt:
* A name for the tool
* A description for the tool
* Usage notes for the tool
* Placeholder parameters that are included in the tool string
* Expected output
* Versioning and timestamps.
## JSON Format Specification
||CODE_BLOCK||json
{
"version": "string or integer",
"model_prompt": "string with {{variable_name}} placeholders",
"metadata": {
"prompt_name": "string",
"description": "string",
"usage_notes": "string",
"model_version": ["string", "string", …],
"creator": {
"name": "string",
"email": "string",
"organization": "string"
},
"parameters": {
"temperature": "float",
"max_tokens": "integer",
"top_p": "float",
"frequency_penalty": "float",
"presence_penalty": "float"
},
"variables": [
{
"name": "variable name 1",
"type": "text",
"description": "string",
"default": "string",
},
{
"name": "variable name 2",
"type": "single-select",
"description": "string",
"default": "value1",
"allowed_values": ["value1", "value2", "value3"]
},
{
"name": "variable name 3",
"type": "multi-select",
"description": "string",
"default": ["value1", "value2"]
"allowed_values": ["value1", "value2", "value3"]
},
...
],
"expected_output": {
"type": "string (e.g., text, code, limited)",
"format": "string (optional, e.g., JSON, XML, CSV)",
"language": "string (optional, e.g., Python, JavaScript)",
"allowed_values": ["string1", "string2", ...] (optional)
},
"avatar_type": "string (e.g., url, base64)",
"avatar": "string (URL or base64-encoded image), 256x256 pixels recommended",
"timestamp": "string (ISO 8601 format)"
}
}
||CODE_BLOCK||
You can download our sample JSON [here](https://skydeck-public-assets.s3.amazonaws.com/sample\_tool.json).
## Fields Description
* **model\_prompt**: A string containing the GPT model prompt.
* **metadata**: An object containing additional information about the GPT model prompt, including the following sub-fields:
* **model\_version**: A string indicating the version of the GPT model used.
* **creator**: An object containing information about the creator of the GPT model prompt, with the following sub-fields:
* **name**: A string representing the name of the creator.
* **email**: A string representing the email of the creator.
* **organization**: A string representing the organization the creator is affiliated with.
* **parameters**: An object containing information about the GPT model parameters, with the following sub-fields:
* **temperature**: A float indicating the temperature used for controlling the randomness of the output.
* **max\_tokens**: An integer indicating the maximum number of tokens in the generated response.
* **top\_p**: A float representing the nucleus sampling probability threshold.
* **frequency\_penalty**: A float representing the penalty applied to tokens based on their frequency in the dataset.
* **presence\_penalty**: A float representing the penalty applied to new tokens based on their presence in the prompt.
* **timestamp**: A string in ISO 8601 format representing the date and time when the GPT model prompt was created or last modified.
* **expected\_output (Optional)**: An object containing fields related to the expected output from the model\_prompt, including the following sub-fields:
* **type**: A string indicating the type of output expected from the model\_prompt.
* **format (Optional)**: A string representing the format of the expected output if applicable.
* **language (Optional)**: A string representing the programming language of the expected output if the type is `code`.
* **allowed\_values (Optional)**: An array of strings containing a list of allowed output values if the type is `limited`.
* **variables (Optional)**: A list containing variables that might be inserted into the `model_prompt` string in an f-string style. Each variable contains the following sub-fields:
* **name**: A string representing the variable name.
* **type**: A string showing the type of variable. Currently the possible values of `type` are `text` for default variable, and `single-select` or `multi-select` for selection variables.
* **description**: A string showing the description of the variable, including usages and examples.
* **default**: A value showing the default value of the variable. This value is a string if `type` is `text` or `single-select`, and an array of strings for `multi-select`.
* **allowed\_values**: An array of strings containing a list of allowed values if the variable type is `single-select` or `multi-select`
* **avatar (Optional)**: An object containing fields related to the graphic image acting as an avatar or icon for the prompt, including the following sub-fields:
* **avatar\_type**: A string specifying the type of avatar data included.
* **avatar**: A string containing the URL pointing to the image if the avatar\_type is `url`, or a base64-encoded string representing the image if the avatar\_type is `base64`.
* **prompt\_name (Optional)**: A string representing the name of the prompt.
* **description (Optional)**: A string providing a brief description of the tool and its purpose.
* **usage\_notes (Optional)**: A string containing free-form notes from the creator about the usage or any specific considerations related to the tool.
To specify the format of the expected output from the model\_prompt, you can add an `expected_output` object within the `metadata` object. Depending on the type of expected output, you can include the relevant sub-fields in the `expected_output` object.
To include fields for variables that might be inserted into the `model_prompt` string in an f-string style, you can add a separate `variables` list within the `metadata` object.
To include a graphic image acting as an avatar or icon for the prompt, you can add an `avatar` field within the `metadata` object.
Including the `expected_output`, `variables`, `avatar`, `prompt_name`, `description`, and `usage_notes` fields within the `metadata` object helps keep all the contextual information about the prompt in one place, making it easier to manage and understand.
You can use the `version` field at the top level of the JSON object to explicitly track the version of the entire JSON file
==> developers/develop-your-own-tools/README.md <==
---
description: >-
You can create custom prompts, and advanced tools for use in SkyDeckAI or to
share with other elsewhere.
---
# Develop Your Own Tools
You upload json that defines custom tools inside GenStudio.
Uploading json that defines a custom tool
==> developers/develop-your-own-tools/json-format-for-tools.md <==
---
description: As of July 26, 2023
---
# JSON format for Tools
## Introduction
This documentation outlines the JSON structures supported by SkyDeck AI for two distinct types of tools: LLM Tools and Smart Tools. The purpose of this page is to provide a brief introduction to these tool categories and their respective JSON structures. Detailed information and examples for each tool type can be found in the corresponding sub-pages.
***
#### LLM Tools
LLM (Large Language Model) Tools are designed to facilitate user interaction with LLM models by sending user input to predefined prompts.
{% content-ref url="json-format-for-llm-tools.md" %}
[json-format-for-llm-tools.md](json-format-for-llm-tools.md)
{% endcontent-ref %}
#### Smart Tools
Smart Tools extend the capabilities of LLM Tools by incorporating Python code execution for data extraction and processing. The integration of Python enables users to perform complex calculations, data transformations, and other advanced operations beyond the scope of standard LLM Tools functionality.
{% content-ref url="json-format-for-smart-tools.md" %}
[json-format-for-smart-tools.md](json-format-for-smart-tools.md)
{% endcontent-ref %}
==> genstudio-workspace/web-browsing.md <==
# Web Browsing
Scraping content from websites to include in your prompts is a very helpful feature of GenStudio. Any URL you include in curly brackets will be replaced by the content scraped from that site. For example, you could write "Summarize the most important news from the following \{{https://nytimes.com\}}."
Start a conversation by clicking the **New conversation** button, or you can resume an existing conversation by choosing one on the Sidebar.
Just ask your LLM anything. These are your "prompts" to the model. But there are best practices you can follow to get better results. For example, just asking for better results can produce better results, for example, "As an expert in physics explaining to a child, explain why the sky is blue."\
\
Your input should be entered in the input field at the bottom of the screen. You submit it to your LLM for a response by clicking the **Ask AI** button on the right hand side of the input field, or by pressing **Enter** while focusing the input.
You can select which model is to be used from the middle menu below the input field. You can change your model choice at any time. Some models will be more appropriate than others. For example, GPT-4 is one of the most advanced models to date and tends to produce more carefully thought out responses. However, Anthropic's Claude models can support much larger context windows (about as much as an entire book) which allows you to submit large documents in your prompt for review, background, or modification.
Choose your LLM for different messages
### Regenerate and Edit the prompt
If you do not like the result your model produces, you can ask it to regenerate the response using the **Regenerate** button. You can also change your model and send another response.
Regenerate AI response
SkyDeck.AI also let you edit your prompt and try again. You can click the **Edit message** button, change the input and resubmit.
### Send non-AI messages
You can also send your messages without asking the AI, and it will just appear like a normal message with no response in the conversation. This is useful when you want to take some notes directly in the conversation, or working with other members (Learn more in [Sharing and Collaboration](sharing-and-collaboration.md)). The non-AI messages will not be included in the conversation history when interacting with LLM.
To send a non-AI message, simply enter the texts in the input field and click **Send chat message** button, or you can press **Ctrl + Enter** while focusing the input.
Send chat message (1) and Ask AI (2) buttons
### Retrieve the chat content
You can copy all the text of your prompts and responses to your clipboard using the icon in the upper right hand side. This is a handy way to include your work in other documents. You can also download the conversation content into a markdown file by clicking the **Download** button.
Open the thread (1) - Send a message (2) - Response from GenStudio (3)
Here is how the message will appear on GenStudio:
### Formatting
Markdown does not work automatically in Slack when we send content from GenStudio Collaboration. So you will see `*hello*` instead of \*hello\*. This is a recent change in Slack. But there is a solution. In the desktop app you may manually turn markdown recognition \*on\* in the Advanced settings in Slack.
Select "Format messages with markup"
An example of the improvement seen from turning on "Format messages with markdown".
==> genstudio-workspace/public-snapshots.md <==
# Public Snapshots
The snapshot feature provides users with the ability to create a static, comprehensive view of a conversation and share it through a publicly accessible URL. It enhances collaboration by allowing users to disseminate their work quickly and efficiently to your colleagues and even external stakeholders.
### Create a Snapshot
When snapshot of a conversation is created, the system captures the current state of the conversation thread, including messages, timestamps, the LLMs that respond to the messages. Optionally, you can choose to include the participants' names or sharing anonymously. The snapshot is immutable, as it will not be updated when you continue your conversation. If you want to include the new messages, you have to create another snapshot.
To create a snapshot, choose a conversation that you want to share from the left sidebar and click the blue **Collaborate** button in the upper right corner.
Click the Collaborate button
A popup will appear. Choose the **Share publicly** tab and then click **Create new snapshot**. You have to options: **Share anonymously** or **Share with your name**. Choose the former if you do not want to include your name in the snapshot, and choose the latter if you are willing to share it.
Click Create new snapshot and choose a sharing option
{% hint style="info" %}
Once created, the snapshot will not include changes from the conversation, such as message addition or deletion.
{% endhint %}
A unique URL is generated for each snapshot so that you can give it to anyone to allow access to the conversation snapshot. The URL generation process employs cryptographic hashing techniques to ensure the uniqueness and integrity of each link.
### Snapshot View
If you choose **Share anonymously**, the participants' names of the conversation will not appear. Instead, you will see User 1, User 2... as the owner of the messages.
Anonymized View
If you choose **Share with your name**, the participants' names will appear.
Unanonymized View
{% hint style="info" %}
If you wish to anonymize the participants later, you have to create another snapshot. You can [disable](public-snapshots.md#disable-a-snapshot) or [delete](public-snapshots.md#delete-a-snapshot) the current one later.
{% endhint %}
### Continue from a Snapshot
When someone accesses your snapshot, they are able to continue the conversation from that point. Click **Continue this conversation** at the bottom of the page, and a popup will appear asking for your workspace account.
If you don't have one, you can sign up by entering your email address, and we will guide you through the process of [Setting up an account](../control-center/setup-guide/). After that, you can continue the snapshot once signed up.
### Disable a Snapshot
Users have the ability to toggle the accessibility of a snapshot via the management interface. Disabling a snapshot renders the URL inactive, and any attempt to access the URL afterwards will be responded with not found resources. You can choose to re-enable it later.
"Eye" icon to disable/enable a Snapshot">
Click the "Eye" icon to disable/enable a Snapshot
### Delete a Snapshot
You can choose to delete a snapshot if you don't want to share it anymore. Be cautious that this action is irreversible, which means that you cannot regain the deleted snapshot with the same URL. When clicking the "Trash" icon, you have to confirm the deletion to avoid unintended removal.
"Trash" icon to delete a Snapshot">
Click the "Trash" icon to delete a Snapshot
==> genstudio-workspace/document-upload.md <==
# Document Upload
SkyDeck.AI allows you to add different types of documents and images to your conversations with AI. You can ask your favourite LLM to analyze your file, and you will be able to receive its summary, interpretation, or answers for your questions about its content.
### Add a document
To add a document, open a conversation and click **Add** next to the prompt input. Then, choose **Upload documents**. We are currently supporting these files extensions: PDF, DOC, DOCX, PPTX, and simple text files.
The document will be attached with your message and sent to LLM. You can see the file associated with the message and you can even re-download it.
### Add an image
To add an image, click **Add** and then, choose **Upload images**. We are currently supporting these files extensions: JPEG, JPG, WEBP, PNG.
The image will be attached with your message and sent to LLM. Additionally, you can also click on the image, which will open a new popup window displaying it in more clearly.
View the image directly in GenStudio
### Restrictions
* Total size of all files per message: up to 20MB
* If the file is less than 20MB but still exceeds the token limit, another error will be displayed:
* Total number of files: up to 10
### Rememberizer - Extending AI knowledge
You can utilize [Rememberizer](https://rememberizer.ai/), our solution for giving AI your own knowledge and information and allowing SkyDeck.AI to learn from your documents and discussions. Learn more about Rememberizer [here](https://docs.rememberizer.ai/).
==> genstudio-workspace/sharing-and-collaboration.md <==
# Sharing and Collaboration
SkyDeck.AI is committed to breaking down silos and promoting a culture of collaborative innovation. You don't have to work in isolation when using the GenStudio Workspace. Whether you are working on a general conversation with one of the LLM models or diving deep into one of the six specialized tools for targeted tasks, GenStudio provides a cohesive and intuitive platform for real-time collaboration.
### How to Invite Collaborators
To add collaborators to any existing conversation, select the conversation from the left sidebar and click the blue **Collaborate** button in the upper right corner.
Click the Collaborate button
A popup will appear with the default tab of **Invite to collaborate**. Toggle the **Collaboration** slider and then click the blue **Copy link** button.
{% hint style="info" %}
Should you wish to discontinue collaboration at any point, simply switch the slider to the off position. Please note that this will invalidate the current link, and it will be different if you generate a new one.
{% endhint %}