No-Code use of an AI agent as career coach (with Flowise and BabyAGI)

syrom
19 min readJun 4, 2023

--

Motivation & use case

I had heard about LangChain as a tool to chain various components from the world of generative AI — and also did first experiments in “real” Python code with it. But when I saw a first video on Flowise, I was amazed at how quickly the community had come up once more with a “visual wrapper” that makes the entire process so much more accessible to a wider audience.

This article shows how it is possible in a fairly simple, no-code way, even for (relative) non-techies, to harness the astonishing power of the latest generation of AI language models.

The chosen use case is a career coaching to support a professional reorientation. This was chosen because it is a rather practical subject and bears a certain relevance that readers can relate to.

Technical setup & requirements

General considerations

I said “no code” above. Nevertheless, the setup still may look complex, as it involves several components that must work together. In particular, the process needs

  • Flowise itself
  • openAI for its chatting component
  • openAI for its embedding component
  • Pinecone to store the embeddings in a vector database

If this sounds “techie” to you… never mind, you don’t need to bother. Consider “embeddings” the natural language of Large Language Models. And, just like in the real world: if you want to talk to someone, you better speak his/her language. So to use e.g. chatGPT, you first need to translate everything you feed to it to its own language. And because the language is so weird (1536 flowpoint numbers between 0 and 1 stored as “vector” from what I understood so far….), you better remember the translations of what you feed to or ask chatGPT …. and this you do by storing these translations in a “vector database”. And that’s precisely what Pinecone is: an online vector database.

Costwise, a basic usage of Pincone is free. You can register, but don’t need to leave any payment info for starters. There are a lot of articles out there how to do this. You can refer to the sources below, but I spare you the details here.

openAI, on the other hand, immediately wants you to leave payment info. But that’s OK (as long as you have a credit card to your name), as costs are truely low if you consider the computational effort and power behind the model (….but it is good to know that there are alternatives!!!). Same here: lots of tutorials / descriptions out there how to sign up and obtain your openAI-API-key. You can search for it or refer to the resoureces section.

Besides the technical setup requirements, it comes in useful, for the given use case, if you have a pure text version of your current CV. ChatGPT (hopefully) wasn’t trainded on your CV — and only “knows” what it was trained on. So for chatGPT (and thus the BabyAGI agent) to be able to know anything about your CV (and thus your departure point for professional reorientation), you must feed it your CV as part of the prompt.

Technology choices

There are alternatives both for openAI as LLM and for Pinecone as vector database. And there are MANY different deployment options how to install Flowise in an online environment. I opted for

Flowise in the first place

  • there is an alternative “GUI-wrapper for LangChain” that is “more pythonic”, LangFlow, which seems to be based on Django. I watched / red one or two comparisons of both “visual wrappers” — and found Flowise intuitively more appealing and thought it can’t hurt to venture a bit out to Java-land.

OpenAI as LLM

  • due to its easy of use and the quality of the answers

Pincone as vector database

  • …because it was the only vector DB I could get to work with the BabyAGI-agent; with other agent, I could use a local vector db — but that attempt only produced errors with the BabyAGI. I assume this is a typical early stage bug — and other databases can be used soon.

BabyAGI agent:

  • I also tried the AutoGPT-agent template on the same use case. In many respects, this agent is more flexible and powerful (e.g. it allows the upload from files to feed the agent, not only prompts; it can do web searches in the background to retrieve up-to-date information; it supports a local vectore store… and certainly does many things more). However, the output format is a JSON-file that requires further post-processing. Something that negated the “no-code”-approach of this article.
    The output from BabyAGI is explained further down below. It may not appear where one suspects it (details below….). But it is simple, plain text that can immediately be used an read by humans.

Local install:

  • A bit like with Pincone: I would have loved to directly use a version that is hosted online. According both to the documenation and tutorials found online, this should have been easy with REPLIT. However, I only ran into errors during the installation process which ran so smoothly locally. No idea if it’s me or some changes at REPLIT — but in order to try things out quickly, I opted for the first solution that worked — and that was the local install.
  • This being said: I do see an enormous advantage for an online deployment. One of the beauties of Flowise is that it provides an API-key-access to the flows that are created with it. For the given use case, a local install is sufficient. But if you want to take things to the next level and have e.g. your AI-flow interact with other services on the internet, doing so looks fairly easy with this API-solution. It’s just that the Flowise install in REPLIT needs to work for that case…. or you dive even deeper and opt for a Docker deployment.

The technical part

Flowise installation

Reading the installation instructions in the Flowise documentation for a local install, I first though they were joking, but it is that easy:

  • Install latest NodeJS
  • Download the right installer (Windows, Mac, Linux)
  • ….and install it

I come from the Python, not from the Java world. So I don’t understand too much about NodeJS. But being a good German, I did what I was told by the instructions…. and everything worked thus fine.

  • Install Flowise by entering in terminal (Windows Powershell):

npm install -g flowise

  • Start Flowise by entering in terminal:

npx flowise start

  • Open Flowise in your browser by entering the URL:

http://localhost:3000

At this point, you already see the interface. But there’s not yet a lot you can do with it. In order to get the PoC for our use case on the road, we still need, as said above, an API key each for openAI and Pinecone.

openAI API

As said above: there are millions of good sources to guide you (see e.g. the Resoureces below). You only need to have your API-key available for copy and pasting

Pinecone API and Index creation

For signing up and obtaining an API-key, it’s the same as for openAI. However, it gets a bit more complicated: me must later tell Flowise with what “Index” of your Pinecone account to interact with. Think of the index as of a table in a normal database.
So you must first create this index (aka table) so that Flowise knows exactly where to store the above-mentioned “embedding translation” of the texts that you (via the prompt) and the agent (via its “thinking process”) will feed into the database.

Once signed up on their website, you click on the INDEX menu in the left pane menu, then on the “Create Index” button in the upper right corner:

Pinecone Main Dashboard after login

In this example, you already see the created index. When you create your’s, this window will pop up:

Index creation pop-up in Pinecone — with parameters to fill in

It is important to

  • remember / note down the name of the index and
  • set the dimension to 1536 (no, no secret reference to a year of religious strife and social upheaval in early modern Euroepan history — just the length of the above-mentioned vector that happens to be GPT’s internal language)
    You’ll see in a second why…..

Flowise template

Once you started Flowise in the browser by calling http://localhost:3000 after having run ‘’npx flowise start” in the windows shell, you should see something like this, but just without any chatflows:

Flowise homepage for your account

As you can see from the screenshot, I already experimented a bit. The flow discussed here is “BabyAGI_Reorientation”. It is easy to get these basic flows installed and modify them: they are available thru the Marketplace (left pane). You only needs to select the flow you want to try and save it (disk-icon in the upper left corner) as soon as the template flow is showing on screen. At is at this point that you give the flow its name.

Opening this flow should give you a picture like this:

Main Flow window in Flowise

And now you understand what you needed all the API-keys for…. you must copy&paste them to the respective fields in the flow component boxes, twice for the openAI and once for Pinecone. And for Pinecone, you also need to set the environment and the Pincecone Index Name (both easy to retrieve from the Pinecone website once you log in after your sign up — just in case you forgot to note them or store them in your password vault).

The model copied from the template can be used directly to attack our use case. As so often with AI-models, the “secret sauce” lies in the prompt.

In order to start to prompt the model, you need to click on the chat-icon in the upper right corner of the screenshot above.

One tip: changes do not take immediate effect: after entering new data into any of the boxes, you must first save the model via the disk-icon to have these changes take effect. So you better click that save-icon before starting the conversation !

Prompts

I used the following prompt as intro AND copied and pasted the above-mentioned pure-text CV right after the prompt into the chat text entry box:

“As manager in a leading position, I want to reorient myself professionally. My core competences are in Finance, but I have very good skills both on the level of IT, data science, ML and AI and on the level of international mangement and coordination. The target of the reorientation is a leading position in a data-driven and growth oriented company. It can still be in the Finance domain, but is not limited to it. You should also consider other potential profiles for the new position. Devise a task list of how to best reach this target and devise a list of potential target positions that have a good fit with my CV. This CV follows now: PURE TEXT CV PASTED HERE”

It goes without saying: this prompt needs to be adjusted to personal circumstances to define the target for the agent.

Further important settings that influence the output of the agent are

  • The temperature in the ChatOpenAI-box: a sort of “serendipity factor” determining how close chatGPT sticks to “the computationally most likely output” in its next-word-prediction. The value should be between 0 and 1 — and 1 as highest value allows for big deviation and surprising answers, while 0 implies “stick to your textbook answer”
  • The task loops in the BabyAGI-box: the maximum number of iterations you allow BabyAGI to go thru the task list that it summarizes from your prompt. The simple equation: the more loops, the more details (for better or for worse, e.g. if chatGPT starts to “hallucinate”)

Results

Output format

The biggest surprise was the output format: I was at first VERY disappointed, because not only took it ages before a result showed in the chat dialogue — the resulting answer to the prompt was also underwhelming in every aspect. That is until I found out that the actual answering process (which is far more important than the result itself) is NOT shown in the chat dialogue box, but ONLY in the shell / terminal.

In other words: you need to leave the browser-based GUI, go back to the shell and copy & paste the text from there to see the all-important “thinking process” of BabyAGI that makes it come to the result.

I tried another, more visual example prompt to proof the point:

The prompt:
“Assuming I have all the necessary indgedients, tell me how to prepare a classical Club Sandwich.”

The result:
“To prepare a classic Club Sandwich, you need to check for available turkey or chicken slices. Please make sure you have these ingredients before proceeding with the recipe.”

Underwhelming indeed.

However, in the terminal / shell, the following “thinking process” has taken place to produce this result:

TASK LIST
1: Make a todo list
NEXT TASK
1: Make a todo list
TASK RESULT
Sure, here is a todo list for preparing a classical Club Sandwich:

  1. Gather all necessary ingredients, including bread, turkey or chicken, bacon, lettuce, tomato, mayonnaise, and mustard.
  2. Toast the bread to your desired level of crispiness.
  3. Cook the bacon until it is crispy and set aside.
  4. Add mayonnaise to one side of each slice of bread and mustard to the other.
  5. Layer the turkey or chicken onto one slice of bread, followed by the lettuce, tomato, and bacon.
  6. Top with the other slice of bread, mayonnaise-side down.
  7. Using a sharp knife, cut the sandwich diagonally in half.
  8. Serve with your favorite side dish and enjoy!

TASK LIST
2: Check if all necessary ingredients are available:
3: Create a grocery list:
4: Preheat oven or toaster oven:
5: Prepare the bacon:
6: Prepare the bread:
7: Slice tomato and lettuce:
8: Assemble the sandwich:
9: Cut the sandwich:
10: Plate the sandwich:
1: Clean up:
NEXT TASK

Now that looks like much more helpful information to solve the task formulated in the prompt !

Because this is such an important issue I found in using Flowise, here two more screenshots:

screenshot 1 showing the chat output:

Screenshot 2 showing the text outpout generated in the shell:

I have frankly no idea if this (still) is a bug or intentional to not show the “thinking process” in the chat dialogue… but as long as one can access the info, I’m fine with this at this early stage. What counts: the same logic holds true for the more abstract use case of professional reorientation with the prompt explained above.

Output content for use case “professional reorientation”

Not all is perfect — and the agent’s “thinking process” created a lot of noise or overhead. But even if the noise-to-info ratio in the agent output is in the area of 7:3 or 8:2 — the remaining info provides convincing quality and valuable ideas and insights how to tackle the task at hand.

Immediately the first iteration produced a very useful list for the use case at hand that I would consider “bull’s eye”:

TASK RESULT

  1. Identify career goals and target industries for reorientation.
  2. Research and network with companies and professionals in target industries.
  3. Update resume and professional profiles to highlight relevant skills and experiences.
  4. Develop a personal brand and online presence to showcase expertise.
  5. Participate in relevant industry events and conferences to stay informed and build connections.
  6. Consider additional education or certifications to enhance skill sets.
  7. Apply to relevant job openings and participate in interviews to secure a new position.

Potential target positions:

  1. Chief Data Officer
  2. VP of Operations
  3. Director of Business Intelligence
  4. Head of Digital Transformation
  5. Director of Strategy and Analytics
  6. Head of Innovation and Technology
  7. Senior Business Analyst
  8. Director of Financial Planning and Analysis
  9. Director of IT Operations
  10. Chief Strategy Officer
    NEXT TASK

In the further iterations, BabyAGI tried to tackle the 7 TASK RESULTS from above one-by-one. It would eventually get stuck on point 3. (relevant skills and experiences) by “solving” this task several times instead of progressing to the next item on the list.

This could be solved by re-prompting the agent with the remaining list after point 3.

The result from the iteration on point 1) above (Identifying career goals….) produced e.g. the following info:

NEXT TASK
1: Research and analyze potential companies and job openings that align with the desired position and career goals.

TASK RESULT

  1. Identify areas of interest: Start by identifying the areas of interest in finance that you want to explore. Some of the areas that meet your desired criteria are data analytics, digital transformation, and strategy.
  2. Research companies: Research companies in these areas of interest that are in the location of your choice. Make a list of the companies that catch your eye and research their financial positions, culture and vision.
  3. Identify job openings: Check job postings on their websites or use job boards that cater specifically to the finance job market. Look for keywords that match your skills and experience, such as data analytics, strategy, digital transformation, etc.
  4. Tailor your application: Customize your resume and cover letter to highlight the areas of expertise that the job requires. Use keywords relevant to your job and highlight your achievements in finance and relevant fields. Highlight examples of change management, process optimization and working with senior leaders. Show how you have contributed to the growth of previous jobs and how your experience is transferable.
  5. Preparing for the interview: Make a list of common interview questions and prepare answers that highlight your most relevant experiences and how they relate to the new job opportunity. Make a list of questions you have for the company during the interview.
  6. Follow-up: After the interview, send a thank-you note to the interviewer expressing your interest in the position and reaffirming your qualifications.
    NEXT TASK

Pretty useful stuff, I would say.

A last, rather detailed example from the end of the “thinking process” and a bit of re-prompting:

NEXT TASK
1: Develop a personal website or portfolio to showcase skills, past work, education, and experience for potential employers.

TASK RESULT
Thank you for your request. Based on the objectives and previously completed tasks, here are some conclusive lists to address the remaining tasks:

  1. Creating a personal brand and online presence:
  • Create a professional-looking website or portfolio showcasing your skills, past work, education, experience, and achievements.
  • Use social media platforms like LinkedIn, Twitter, and Facebook to promote your personal brand and engage with industry professionals.
  • Regularly update your profiles with relevant content related to your industry, such as articles, blog posts, and insights.
  1. Identifying relevant webinars, conferences, and workshops:
  • Subscribe to industry newsletters, blogs, and websites to stay up-to-date with the latest industry trends.
  • Use online search engines and event directories like Eventbrite and Meetup to find relevant events and conferences in your industry.
  • Prioritize attending events where you can network with industry professionals and gain knowledge in areas relevant to your career goals.
  1. Taking on leadership roles in industry associations:
  • Research and join relevant industry associations related to your field.
  • Attend meetings and events to connect with other professionals and learn about industry-related issues and regulations.
  • Look for opportunities to volunteer for leadership roles, such as serving on committees or boards, to expand your professional network and gain leadership experience.
  1. Creating targeted marketing campaigns on LinkedIn:
  • Develop a clear personal branding message that highlights your unique skills, experiences, and qualifications.
  • Use LinkedIn’s targeting features to reach out to potential employers and decision-makers in your target industries.
  • Use a combination of text, images, and videos to create engaging marketing campaigns that showcase your personal brand and value proposition.
  1. Identifying online forums and discussion groups related to your field:
  • Join online forums and discussion groups related to your field on social media platforms, Slack, and other professional networking websites.
  • Participate in the conversations by sharing insights, asking questions, and contributing to discussions.
  • Look for opportunities to connect with industry peers outside of the online forums, such as attending webinars or conferences.
  1. Collaborating with other professionals in your field on open-source projects:
  • Look for open-source projects related to your field on platforms like GitHub and Bitbucket.
  • Join project teams and contribute your skills and expertise to the project.
  • Use your participation in the open-source projects as evidence of your skills and experience in job applications and on your personal website or portfolio.

In addition to these lists, I suggest developing a personal website or portfolio to showcase your skills, past work, education, and experience for potential employers. You can use website builders like WordPress, Wix, or Squarespace to create a professional-looking website that highlights your unique selling points and value proposition. Be sure to include your personal branding message and contact information on the website so that potential employers can easily get in touch with you.

I hope this helps you achieve your career development goals. Please let me know if you have any further questions or concerns.

NEXT TASK

Now that is very detailed and includes several points that I frankly wouldn’t have thought about. Thank you, agent !

And, finally, as shown in the “Club Sandwich”-case, the actual response shown in the chat box answers the prompt question somewhat, but is comparably underwhelming:

TASK RESULT
Based on your core competencies, some potential target positions in data-driven, growth-oriented companies include:

  1. Chief Financial Officer or VP of Finance: In this role, you can lead financial management, forecasting, and strategy for a data-driven and growth-oriented company while leveraging your skills in finance and data science.
  2. Chief Data Officer or VP of Data Analytics: In this role, you can oversee the use of data to drive growth for the organization, while leveraging your skills in data science and IT.
  3. Head of Business Intelligence or Data Science: In this role, you can lead the development and implementation of data-driven strategies for a company, while using your skills in data science, ML, and AI.
  4. General Manager or Operations Director: In this role, you can lead the coordination and management of cross-functional teams, leveraging your skills in international management and coordination as well as finance.
  5. Director of Strategy or Corporate Development: In this role, you can lead strategic planning and corporate development activities for a data-driven and growth-oriented company while leveraging your skills in finance and international management.
    To identify potential job opportunities, you can conduct research on companies in industries known for their focus on data-driven and growth-oriented strategies, such as technology, healthcare, finance, and e-commerce. You can also use job search platforms and networks to identify relevant job postings and connect with potential employers.
    TASK ENDING

Evaluation

Does this agent approach completely eliminate the need for a human counterpart for this kind of coaching ? Certainly not !

Does is prepare & support one to tackle complex tasks like career reorientation? Certainly yes !

The best way to look at it is probably to regard an agent like BabyAGI as a sort of wingman to support and give backup for complex task and endeavors.

The approach is probably not yet “ready-to-use” for all-out luddites and those technologically faint at heart. Getting all the technical setups and requirements straight is still a challenge. Yet, there is not a single line of code in this article — and the result speaks for itself.

So I am sure that the barrier to entry for using such agents as wingman is much lower now with a tool like Flowise than with, e.g. LangChain code alone. And anyone reading these lines is very likely neither a luddite nor technologically faint at heart ;-)

And one tongue-in-cheek-comment: if the result from the output motivated this article, than it’s a wonderful example of self-referentiality, as it means that at least one box of the task list derived from this article is already checked with the act of publishing it.

Suggested immediate improvements

In the process to trying out Flowise, and writing this article in parallel, I saw several points that can provide “quick wins” for the usability of Flowise in general and BabyAGI in particular:

  • Control & save the chat output: as explained, I used the BabyAGI and AutoGPT templates for this use case — and thought at first it wouldn’t work, because I saw no or very little output in the chat window. I realized only later that the text output appeared in the Windows Power shell I had used to start Flowise. I found that a bit weird. But it begs the question: is there a way (planned?) to “fork” the agent output to a text file for later examination or processing ? The answers from AutoGPT are structured as JSON and contain interesting details on the “thought process” of the algorithm. The answers from BabyAGI are “pure text”. Either way, it would be very interesting to get this entire agent output written directly to a file.
  • Resulting LangChain code: that would make the tool even 1.000 times for powerful. I did see a JSON-export option for a given flow. But with this JSON, one is far from being able (…well, at least I am….) to reproduce the actual LangChain-code that the visually designed flow is producing “under the hood”. Being able to copy&paste&polish this “under-the-hood” code resulting from the visual flow design would be VERY useful. E.g. take “Loaders” as an example: by far not all Loaders have been implemented (yet) in Flowise. But using e.g. the simple “Text” loader in Flowise could be enough to enable changes in the resulting code by simply changing it e.g. to a “Obsidian” loader (..which is not yet enabled in Flowise) with its slightly different input options and parameters.

Outlook

This was my first encounter with Flowise. For next iterations , I noted the following points to check for progress:

  • Enable BabyAGI to work with local database (other attemps than Pincone failed with BabyAGI; it worked immediately with a modified AutoGPT flow from the market place
  • Improve the inputs to the BabyAGI-flow so that CV can be loaded from a document, not inserted in the prompt (Again: this worked perfectly fine when testing the modified AutoGPT-flow from the market place)
  • Working with other LLM, e.g. to keep things private (aka: not send all text to openAI)
  • Look more in depth if I overlooked the mentioned “Langchain-code-under-the-hood”-feature — or if it was added
  • Explore in more details how other agents like AutoGPT work on this kind of task: I think especially the large number of “tools” that can be connected to the AutoGPT-client can be interesting. Imagine e.g. the output of the discussed “career coaching” being forwarded to a LinkedIn web scraper to retrieve open positions that correspond to the identified target — and quantify gaps between the own profile and the requirements for the position.

Resources and links

OpenAI API signup

https://help.socialintents.com/article/188-how-to-find-your-openai-api-key-for-chatgpt

Pinecone API signup

https://www.youtube.com/watch?v=rQd9OpzS2Ow

Other Medium articles on Flowise

https://cobusgreyling.medium.com/flowise-for-langchain-b7c4023ffa71
https://cobusgreyling.medium.com/flowise-is-a-graphical-user-interface-gui-for-langchain-8978ac3db634

You liked the article ? Another thing I only found out only recently: one can clap up to 50 times for an article one liked…. so I’d be grateful if you clapped once for every new insight you took away from this article.

--

--

syrom

happy about my past, glad about the present and curious about the future.