-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: sdr kit docs #1031
feat: sdr kit docs #1031
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
WalkthroughThis update significantly enhances the SDR Kit documentation and examples by introducing comprehensive guides for AI Lead Generator, AI Outreach Agent, AI Market Research Agent, and AI Scheduling Agent. These additions provide detailed setup and usage instructions, improving user experience. The update also refines existing code examples, particularly for the Lead Outreach Agent, by enhancing code structure and updating dependencies. Furthermore, a new AI Market Research Agent leverages Composio's tooling ecosystem, and an AI Scheduling Agent automates meeting scheduling via Google Calendar, streamlining AI tool integration into business processes. Changes
🔗 Related PRs
InstructionsEmoji Descriptions:
Interact with the Bot:
Execute a command using the format:
Available Commands:
Tips for Using @bot Effectively:
Need More Help?📚 Visit our documentation for detailed guides on using Entelligence.AI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❌ Changes requested. Reviewed everything up to 9c8c981 in 1 minute and 30 seconds
More details
- Looked at
3622
lines of code in10
files - Skipped
1
files when reviewing. - Skipped posting
3
drafted comments based on config settings.
1. js/examples/lead_outreach_agent/demo.mjs:31
- Draft comment:
Consider managing prompt strings in a configuration file or environment variable for easier updates and management. - Reason this comment was not posted:
Confidence changes required:50%
The JavaScript code indemo.mjs
uses a hardcoded prompt string. It would be better to manage such strings in a configuration file or environment variable for easier updates and management.
2. docs/sdrkit/ai-outreach-agent.mdx:96
- Draft comment:
Ensure the tools initialized in the final code block match those in the setup steps for consistency. - Reason this comment was not posted:
Comment did not seem useful.
3. docs/sdrkit/ai-scheduling-agent.mdx:52
- Draft comment:
The setup for the scheduling agent is incorrect. Ensure the tools and prefix messages are relevant to scheduling tasks, not lead generation. - Reason this comment was not posted:
Comment did not seem useful.
Workflow ID: wflow_IS0p8zcDFHlww7Es
Want Ellipsis to fix these issues? Tag @ellipsis-dev
in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
from composio_llamaindex import ComposioToolSet, App, Action | ||
from llama_index.core.agent import FunctionCallingAgentWorker | ||
from llama_index.core.llms import ChatMessage | ||
from llama_index.llms.openai import OpenAI | ||
from dotenv import load_dotenv | ||
|
||
load_dotenv() | ||
toolset = ComposioToolSet(api_key="") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid hardcoding API keys. Use environment variables to securely manage sensitive information.
This comment was generated by github-actions[bot]! JS SDK Coverage Report📊 Coverage report for JS SDK can be found at the following URL: 📁 Test report folder can be found at the following URL: |
from dotenv import load_dotenv | ||
|
||
load_dotenv() | ||
toolset = ComposioToolSet(api_key="") | ||
tools = toolset.get_tools(apps=[App.PEOPLEDATALABS, App.GOOGLESHEETS]) | ||
|
||
# Initialize Composio ToolSet and OpenAI model | ||
composio_toolset = ComposioToolSet() | ||
tools = composio_toolset.get_tools(apps=[App.EXA, App.BROWSERBASE_TOOL, App.GOOGLESHEETS]) | ||
llm = OpenAI(model="gpt-4o") | ||
|
||
spreadsheetid = '14T4e0j1XsWjriQYeFMgkM2ihyvLAplPqB9q8hytytcw' | ||
# Set up prefix messages for the agent | ||
prefix_messages = [ | ||
ChatMessage( | ||
role="system", | ||
content=( | ||
"You are a lead research agent. Depending on the user specification, look for leads." | ||
"Use the browser tools available to you. Find a minimum of 10 relevant people according to the description." | ||
"Include the following elements in the sheet:" | ||
""" | ||
Basic Contact Information: | ||
Full Name | ||
Email Address | ||
Phone Number | ||
Company Name (if applicable) | ||
Job Title (if applicable) | ||
Lead Qualification Information: | ||
Industry | ||
Company Size | ||
Pain Points or Needs related to your product/service | ||
Budget Range (if relevant) | ||
Purchase Timeline | ||
Preferred Contact Method | ||
Lead Source Tracking: | ||
Marketing Campaign Name | ||
Landing Page URL | ||
Referral Source (if applicable) | ||
Event/Webinar Attendee (if applicable) | ||
""" | ||
"Once the leads have been found, create a google sheet and add in these details." | ||
"If the user gives a google sheet as input then don't create a sheet and add the data in that one." | ||
f""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 Bug Fix:
Reintroduce Essential Initializations for Lead Generation
The recent code changes have removed the initialization of the ComposioToolSet
and the OpenAI
model, which are crucial for the lead generation functionality. Without these initializations, the lead generation process will fail, rendering the tool unusable.
- Ensure that the
ComposioToolSet
is initialized with the correct API key. - Reintroduce the initialization of the
OpenAI
model with the appropriate parameters. - Verify that the correct tools and models are being used in the lead generation process to maintain functionality.
This change is critical to ensure the tool operates as intended. 🛠️
🔧 Suggested Code Diff:
+toolset = ComposioToolSet(api_key="your_api_key_here")
+tools = toolset.get_tools(apps=[App.PEOPLEDATALABS, App.GOOGLESHEETS])
+llm = OpenAI(model="gpt-4o")
📝 Committable Code Suggestion
‼️ Ensure you review the code suggestion before committing it to the branch. Make sure it replaces the highlighted code, contains no missing lines, and has no issues with indentation.
from dotenv import load_dotenv | |
load_dotenv() | |
toolset = ComposioToolSet(api_key="") | |
tools = toolset.get_tools(apps=[App.PEOPLEDATALABS, App.GOOGLESHEETS]) | |
# Initialize Composio ToolSet and OpenAI model | |
composio_toolset = ComposioToolSet() | |
tools = composio_toolset.get_tools(apps=[App.EXA, App.BROWSERBASE_TOOL, App.GOOGLESHEETS]) | |
llm = OpenAI(model="gpt-4o") | |
spreadsheetid = '14T4e0j1XsWjriQYeFMgkM2ihyvLAplPqB9q8hytytcw' | |
# Set up prefix messages for the agent | |
prefix_messages = [ | |
ChatMessage( | |
role="system", | |
content=( | |
"You are a lead research agent. Depending on the user specification, look for leads." | |
"Use the browser tools available to you. Find a minimum of 10 relevant people according to the description." | |
"Include the following elements in the sheet:" | |
""" | |
Basic Contact Information: | |
Full Name | |
Email Address | |
Phone Number | |
Company Name (if applicable) | |
Job Title (if applicable) | |
Lead Qualification Information: | |
Industry | |
Company Size | |
Pain Points or Needs related to your product/service | |
Budget Range (if relevant) | |
Purchase Timeline | |
Preferred Contact Method | |
Lead Source Tracking: | |
Marketing Campaign Name | |
Landing Page URL | |
Referral Source (if applicable) | |
Event/Webinar Attendee (if applicable) | |
""" | |
"Once the leads have been found, create a google sheet and add in these details." | |
"If the user gives a google sheet as input then don't create a sheet and add the data in that one." | |
f""" | |
from dotenv import load_dotenv | |
load_dotenv() | |
# Initialize Composio ToolSet with API key | |
api_key = "your_api_key_here" # Ensure this is securely managed | |
try: | |
toolset = ComposioToolSet(api_key=api_key) | |
tools = toolset.get_tools(apps=[App.PEOPLEDATALABS, App.GOOGLESHEETS]) | |
except Exception as e: | |
raise RuntimeError("Failed to initialize Composio ToolSet") from e | |
# Initialize OpenAI model | |
try: | |
llm = OpenAI(model="gpt-4o") | |
except Exception as e: | |
raise RuntimeError("Failed to initialize OpenAI model") from e | |
spreadsheetid = '14T4e0j1XsWjriQYeFMgkM2ihyvLAplPqB9q8hytytcw' # Ensure this is securely managed | |
# Set up prefix messages for the agent | |
prefix_messages = [ | |
ChatMessage( | |
role="system", | |
content=( | |
"You are a lead research agent. Depending on the user specification, look for leads. " | |
"Use the browser tools available to you. Find a minimum of 10 relevant people according to the description. " | |
"Include the following elements in the sheet: " | |
"Basic Contact Information: Full Name, Email Address, Phone Number, Company Name (if applicable), Job Title (if applicable). " | |
"Lead Qualification Information: Industry, Company Size, Pain Points or Needs related to your product/service, Budget Range (if relevant), Purchase Timeline, Preferred Contact Method. " | |
"Lead Source Tracking: Marketing Campaign Name, Landing Page URL, Referral Source (if applicable), Event/Webinar Attendee (if applicable). " | |
"Once the leads have been found, create a google sheet and add in these details. " | |
"If the user gives a google sheet as input then don't create a sheet and add the data in that one." | |
) | |
) | |
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Incremental review on bb3e468 in 36 seconds
More details
- Looked at
493
lines of code in1
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. docs/sdrkit/tools.mdx:102
- Draft comment:
Consider adding a placeholder or comment to indicate that the API key should be replaced with the user's actual key to avoid runtime errors. This applies to other instances in the file as well. - Reason this comment was not posted:
Confidence changes required:50%
The API key is left as an empty string in multiple places, which could lead to runtime errors if not properly set by the user. It's important to either provide a placeholder or a comment indicating that the user should replace it with their actual API key.
Workflow ID: wflow_WvicXACMwsm7PB2P
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❌ Changes requested. Incremental review on 79896ca in 53 seconds
More details
- Looked at
354
lines of code in1
files - Skipped
0
files when reviewing. - Skipped posting
2
drafted comments based on config settings.
1. docs/sdrkit/ai-scheduling-agent.mdx:52
- Draft comment:
composio_toolset
is used without being initialized. It should be initialized similarly totoolset
. - Reason this comment was not posted:
Comment looked like it was already resolved.
2. docs/sdrkit/ai-scheduling-agent.mdx:63
- Draft comment:
Usingdatetime.now().astimezone().tzinfo
might not always give the correct timezone. Consider using a more reliable method to ensure the correct timezone is used. - Reason this comment was not posted:
Confidence changes required:50%
The Python example usesdatetime.now().astimezone().tzinfo
to get the timezone, which might not be accurate if the system timezone is not set correctly. Consider using a more reliable method to get the timezone.
Workflow ID: wflow_IkF8gGYAJh4Vv05q
Want Ellipsis to fix these issues? Tag @ellipsis-dev
in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
<Step title='Final Code'> | ||
```javascript final code | ||
import { openai } from "@ai-sdk/openai"; | ||
import { VercelAIToolSet, Composio, OpenAIToolSet } from "composio-core"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Composio
and OpenAIToolSet
are imported but not used. Consider removing these imports to clean up the code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Incremental review on 500df50 in 26 seconds
More details
- Looked at
212
lines of code in3
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. docs/sdrkit/ai-lead-generator.mdx:204
- Draft comment:
Ensure that thetools
parameter is correctly passed and utilized in thegenerateText
function call. - Reason this comment was not posted:
Confidence changes required:50%
The JavaScript example in the AI Lead Generator documentation has a mistake in the final code section. ThegenerateText
function call should ensure that thetools
parameter is correctly passed and utilized.
Workflow ID: wflow_rF2aH8cxbHPO6YER
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
from dotenv import load_dotenv | ||
|
||
load_dotenv() | ||
toolset = ComposioToolSet(api_key="") | ||
tools = toolset.get_tools(apps=[App.PEOPLEDATALABS, App.GOOGLESHEETS]) | ||
|
||
# Initialize Composio ToolSet and OpenAI model | ||
composio_toolset = ComposioToolSet() | ||
tools = composio_toolset.get_tools(apps=[App.EXA, App.BROWSERBASE_TOOL, App.GOOGLESHEETS]) | ||
llm = OpenAI(model="gpt-4o") | ||
|
||
spreadsheetid = '14T4e0j1XsWjriQYeFMgkM2ihyvLAplPqB9q8hytytcw' | ||
# Set up prefix messages for the agent | ||
prefix_messages = [ | ||
ChatMessage( | ||
role="system", | ||
content=( | ||
"You are a lead research agent. Depending on the user specification, look for leads." | ||
"Use the browser tools available to you. Find a minimum of 10 relevant people according to the description." | ||
"Include the following elements in the sheet:" | ||
""" | ||
Basic Contact Information: | ||
Full Name | ||
Email Address | ||
Phone Number | ||
Company Name (if applicable) | ||
Job Title (if applicable) | ||
Lead Qualification Information: | ||
Industry | ||
Company Size | ||
Pain Points or Needs related to your product/service | ||
Budget Range (if relevant) | ||
Purchase Timeline | ||
Preferred Contact Method | ||
Lead Source Tracking: | ||
Marketing Campaign Name | ||
Landing Page URL | ||
Referral Source (if applicable) | ||
Event/Webinar Attendee (if applicable) | ||
""" | ||
"Once the leads have been found, create a google sheet and add in these details." | ||
"If the user gives a google sheet as input then don't create a sheet and add the data in that one." | ||
f""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure Compatibility with New Tools
The recent code changes involve replacing 'Peopledatalabs' with 'Tavily' and 'Googlesheets' with 'Googledocs'. This substitution could potentially disrupt the lead generation process due to compatibility issues or altered functionalities.
Actionable Steps:
- Verify Functionality: Ensure that 'Tavily' and 'Googledocs' offer equivalent or enhanced capabilities compared to the original tools. This includes checking API compatibility, data handling, and any specific features used in the lead generation process.
- Testing: Conduct thorough testing of the lead generation workflow to confirm that it operates as expected with the new tools. This should include edge cases and typical use scenarios.
- Documentation Update: Revise any related documentation or user guides to reflect the changes in tool usage, ensuring users are aware of the new functionalities and any differences in operation.
By following these steps, you can mitigate the risk of introducing errors or unexpected behavior in the application. 🛠️
🔍 Review Summary
Purpose
Enhance SDR Kit documentation and examples to provide detailed setup and improve user experience.
Changes
New Features:
Enhancements:
JavaScript Example:
Python Example:
Impact
Improves user experience by providing detailed setup instructions and refining code examples for AI agents and SDR development. Streamlines AI tool integration into business processes with the addition of AI Market Research Agent and AI Scheduling Agent leveraging Composio's tooling ecosystem.
Original Description
No existing description found
Important
Enhance SDR Kit documentation with new guides and examples, refine code examples for AI agents, and update dependencies for improved functionality.
AI Lead Generator
,AI Outreach Agent
,AI Market Research Agent
, andAI Scheduling Agent
indocs/sdrkit/
.tools.mdx
.demo.mjs
forLead Outreach Agent
to improve structure and update dependencies.main.py
forLead Generator Agent
to enhance clarity and remove unused imports.package.json
forlead_outreach_agent
to include new dependenciescomposio-core
anddotenv
.This description was created by
for 500df50. It will automatically update as commits are pushed.