💡 Full Course with Movies and Course Certificates (PDF): https://academy.finxter.com/college/openai-api-function-calls-and-embeddings/
Course Overview
Welcome again to half 6 of this tutorial sequence. On this half, we’re going to be taking a look at embeddings. What’s an embedding? With out entering into algorithmic arithmetic an embedding is principally a numerical (vector) illustration of textual content that is senseless to us, however is smart to the pc and permits it to check the similarity in that means of sure phrases and items of textual content.
What makes this so thrilling is that it doesn’t actually examine the phrases, however reasonably the that means of the phrases. For instance, if we have been to check the phrases “blissful” and “contented” it might not examine the phrases themselves, however reasonably the that means of the phrases. It is because the phrases “blissful” and “contented” are very related in that means, however not in spelling. That is what makes embeddings so highly effective. It permits us to check or search by similarity of that means, even when the phrases used are utterly completely different!
Think about having a big doc and it’s essential to discover a explicit quote or passage however you solely half keep in mind the precise phrases used. You may completely simply do a similarity search utilizing embeddings! So long as you enter one thing with the same that means, you’ll be capable of simply discover the passage you want even when you don’t keep in mind the precise wording. The makes use of for this are actually infinite in many alternative and intelligent methods, so we’ll be exploring a few doable makes use of within the final two components of this tutorial sequence.
Making ready our knowledge
Earlier than we get began we’ll want one thing to go looking in. For this primary half, we’ll be utilizing an inventory of quotes from well-known individuals all through time. There are about 250 quotes within the checklist. I’ve supplied the checklist as a separate textual content file with this tutorial, but when for some cause it isn’t accessible yow will discover the checklist on the finish of this tutorial. Simply copy the quotes and paste them into a brand new file named ‘Fx_quotes.txt’ and reserve it in your tutorial’s root folder
> Fx_quotes.txt
Now when you learn by means of the quotes file you’ll discover all of them have their authors and typically additional data connected. As we solely need to examine the that means of the quotes themselves, and never any additional data that’s tagged on, let’s have a little bit of enjoyable. This isn’t technically required, but it surely’s fairly straightforward to do and for tutorial functions, it is going to be very straightforward to indicate visually what’s going on, so we’ll be writing the quotes to a separate Python file as an inventory of lists.
First, create a file in your base listing named ‘Fa_write_quotes_to_list.py’.
> Fa_write_quotes_to_list.py
Now open the file and add the next code:
quotes = [] with open("Fx_quotes.txt", "r") as file: quotes = file.learn().cut up("n") with open("Fx_quotes.py", "w") as file: file.write("quotes = [n") for quote in quotes: # split the quote only on the first occurrence of the '-' character quote = quote.split(" - ", 1) file.write(f"{quote},n") file.write("]")
First, we create an empty checklist named quotes. Then we open the Fx_quotes.txt file in learn mode (be certain that the information are each within the root folder). We then learn the quotes from the file, cut up them on the newline characters, so the top of every line, and assign this to the quotes variable. We now have an inventory of quotes with every ‘quote-author’ pair as a single mixed merchandise within the checklist.
Subsequent, we open the Fx_quotes.py file in write mode (it is going to be created routinely if it doesn’t exist). We then write the string “quotes = [n” to the file. This is just a Python variable named quotes followed by the opening square bracket and a newline (enter key) character. We then loop through each quote in the quotes list, splitting the quote on the first occurrence of the ‘-‘ character. This will split the quote into two parts, the quote itself and the author. We then write the quote to the file, followed by a comma and a newline character. We then write the closing square bracket to the file. This will close the list and the file.
Note we use the ‘with open’ context manager in both cases which means we don’t have to worry about closing the files ourselves. The context manager will automatically close the files for us when the code block has finished executing.
If you run this file you’ll see a new file appear in your base directory. Opening Fx_quotes.py you should see the following:
quotes = [ ["A man is great not because he hasn't failed; a man is great because failure hasn't stopped him.", 'Confucius'], ['Happiness is a gift and the trick is not to expect it, but to delight in it when it comes.', 'Charles Dickens'], ['Everyday you can take a tiny step in the right direction.', 'Unknown'], ['Sometimes adversity is what you need to face in order to become successful.', 'Zig Ziglar'], ['Opportunity comes when you continually push forward.', 'Sonia Ricotti'], ['Always seek out the seed of triumph in every adversity.', 'Og Mandino'], ['Reality is nothing but a collective hunch.', 'Lily Tomlin'], ['Best be yourself, imperial, plain, and true.', 'Robert Browning'], ["Resilience is not what happens to you. It's how you react to, respond to, and recover from what happens to you.", 'Jeffrey Gitomer'], ['Time is a game played beautifully by children.', 'Heraclitus'], ['Most people fail in life because they major in minor things.', 'Tony Robbins'], ['Anyone who has ever made anything of importance was disciplined.', 'Andrew Hendrixson'], ['Do anything, but let it produce joy.', 'Walt Whitman'], ...many extra quotes... ]
Now we’ve got a separate checklist of lists with the quote in index 0 and the creator data in index 1. We’ll have to generate a separate embedding for each single quote within the checklist and retailer them someplace. As soon as we’ve got accomplished so we are able to examine them to any piece of textual content we enter to search out related entries. If this appears complicated, don’t fear, we’ll be displaying precisely how the method works.
Producing an embedding
Earlier than we begin producing embeddings for all our quotes let’s really have a look at how you can generate an embedding within the first place and precisely what an embedding is and appears like. Create a brand new file in your root tutorial listing referred to as ‘Fb_getting_an_embedding.py’. Once more the foolish alphabetic naming is simply to maintain the information in a pleasant order so you’ll be able to simply discover something if you wish to reference these tutorial code information afterward.
> Fb_getting_an_embedding.py
Now open the file and let’s begin with our imports up high:
import openai from decouple import config openai.api_key = config("CHATGPT_API_KEY") EMBEDDING_MODEL = "text-embedding-ada-002"
We’ll return to the fundamentals for a second, eliminating our simplified GPT calling utility as we’ll be utilizing a special mannequin. We’ll be utilizing the text-embedding-ada-002 mannequin as it’s particularly designed for producing embeddings. We import openai, because the embeddings endpoint can be an openai API. We import the config perform and set our openai API key as we did for the earlier components, embeddings use the identical API key as regular ChatGPT. We then set the EMBEDDING_MODEL variable to the text-embedding-ada-002 mannequin.
Now we’ll create a easy name perform:
def get_quote_embedding(quote): response = openai.Embedding.create( mannequin=EMBEDDING_MODEL, enter=quote, ) return response print(get_quote_embedding("Please embed this sentence for me!"))
That is very self-explanatory and much like regular ChatGPT calls besides we use a openai.Embedding.create as an alternative of ChatCompletion.create. It takes a mannequin and an enter textual content, we cross within the mannequin we outlined in our variable and the quote enter our perform takes. Lastly, we add a name to this perform under the perform block which is able to embed the textual content “Please embed this sentence for me!” and print the end result.
Now let’s generate our first embedding and see what it seems to be like. Go forward and run the file:
{ "knowledge": [ { "embedding": [ -0.03016725555062294, 0.005489848554134369, 0.0014944026479497552, -0.014989439398050308, 0.002586822025477886, 0.02618442475795746, 0.010024355724453926, 0.0032814627047628164, -0.005856511183083057, -0.015339282341301441, -0.01650991104543209, ... many more numbers ... ], "index": 0, "object": "embedding" } ], "mannequin": "text-embedding-ada-002-v2", "object": "checklist", "utilization": { "prompt_tokens": 7, "total_tokens": 7 } }
It is best to see a large checklist of numbers representing vectors, about 1500 traces only for this straightforward quick sentence. Whereas this doesn’t actually make visible sense to us that is the magic that can permit the pc to check the similarity between completely different textual content’s vectors, and thereby the similarity between the texts themselves. The pc won’t be evaluating the textual content however the textual content’s vectors with one another.
Producing our quote embeddings
We might want to generate an embedding for each quote in our checklist and retailer them in some kind of database. If we don’t save the embeddings we’d need to generate them anew each single time which takes time and wastes tokens. We’ll be utilizing a CSV file for storage to get began, which is principally a easy textual content file with comma-separated values.
Create a brand new file in your base tutorial listing named ‘Fc_quote_embeddings.py’.
> Fc_quote_embeddings.py
Now open the file and add the next imports and setup to get began:
import openai import pandas as pd from decouple import config from Fx_quotes import quotes openai.api_key = config("CHATGPT_API_KEY") EMBEDDING_MODEL = "text-embedding-ada-002" total_tokens_used = 0 total_embeddings = 0
Most of those are acquainted, we import and arrange the openai module with our key and import the quotes we saved to a Python checklist earlier on. We additionally import the Pandas module. We received’t go too deep into Pandas, however will briefly cowl the capabilities we use, so when you’re not conversant in Pandas no worries. Pandas is principally a spreadsheet/desk in Python, it permits us to simply create, learn, replace, and delete knowledge in a spreadsheet/table-like format with rows and columns of knowledge. Word it’s possible you’ll have to run ‘pip set up pandas’ in your console when you don’t have Pandas put in but.
Lastly, we set two international variables to maintain monitor of the full tokens used and the full embeddings generated, so we may give ourselves a type of progress indicator as we run the file afterward.
Now outline a perform that takes a quote as an argument and makes a single embedding API name, returning the response:
def get_quote_embedding(quote): international total_tokens_used, total_embeddings response = openai.Embedding.create( mannequin=EMBEDDING_MODEL, enter=quote, ) tokens_used = response["usage"]["total_tokens"] total_tokens_used += tokens_used total_embeddings += 1 if (total_embeddings % 10) == 0: print( f"Generated {total_embeddings} embeddings up to now with a complete of {total_tokens_used} tokens used. ({int((total_embeddings / len(quotes)) * 100)}%)" ) return response["data"][0]["embedding"]
The perform takes a quote as an argument, and the second line offers us entry to the worldwide variables total_tokens_used and total_embeddings. We’ll be working this perform again and again so we are able to increment these international variables every cross. We then make the API name similar to we did earlier than.
We get the tokens used from the response knowledge and add the tokens used on this name to the worldwide variable total_tokens_used. We additionally increment the total_embeddings international variable by 1. We then verify if the total_embeddings is a a number of of 10, utilizing the rest operator. If the full embeddings quantity is cleanly divisible by 10 we print a progress message to the console to tell ourselves of the progress of the embedding technology up to now. This simply means each 10 instances the perform runs it would print the general progress to the console as soon as. We then return the response, however solely the precise embedding itself which is positioned in [“data”][0][“embedding”].
Now we’d like some form of knowledge construction to carry our knowledge. Beneath and out of doors the perform block, proceed:
embedding_df = pd.DataFrame(columns=["quote", "author", "embedding"])
A DataFrame is Pandas’ signature knowledge construction, pd simply stands for Pandas. All that is is an empty desk with three columns; quote, creator, and embedding, that we are able to use to retailer our knowledge in.
Now we’ll have to loop over our checklist of quotes and name the above get_quote_embedding perform as soon as for every quote within the file and retailer our knowledge within the DataFrame.
for index, quote in enumerate(quotes): current_quote = quote[0] attempt: current_author = quote[1] besides IndexError: current_author = "Unknown" embedding = get_quote_embedding(current_quote) embedding_df.loc[index] = [current_quote, current_author, embedding]
For every index and quote within the enumerate quotes (keep in mind we already imported our quotes from the completely different file up high), we’ll run the next code. The current_quote = quote index 0, and we attempt to set the current_author to cite index 1. If there is no such thing as a quote index 1, we set the current_author to “Unknown”. We then name our get_quote_embedding perform on the current_quote and set the embedding variable to the response knowledge’s embedding.
Lastly, we choose the embedding_df Dataframe and use the loc methodology to pick the present index which is able to enhance with every loop iteration. We set the values of the present index of this Dataframe to the present quote, creator, and embedding, filling within the Dataframe with knowledge loop by loop.
Word that sure code like current_quote = quote[0] is just not technically required, however when you code on this type it’s a lot simpler to learn and when you come again to your code later you’ll be capable of soar proper again in. Writing your code as human-readable as doable is at all times preferable over intelligent one-liners which might be laborious to learn.
Now that we’ve stuffed up our DataFrame with knowledge, let’s save the DataFrame to a CSV file so we are able to load it afterward. Then we’ll print successful message to complete up. The .head() methodology within the print assertion simply prints the primary x rows of a DataFrame and is a built-in Pandas methodology.
embedding_df.to_csv("Fx_embedding_db.csv", index=False) print( f""" Generated {total_embeddings} embeddings with a complete of {total_tokens_used} tokens used. (Executed!) Succesfully saved embeddings to embedding_db.csv, printing dataframe head: {embedding_df.head(5)} """ )
As you’ll be able to see, Pandas offers a straightforward methodology for us to dump the DataFrame to a CSV (comma-separated values) textual content file utilizing the .to_csv methodology. We cross within the filename we need to save to and set the index to False. This simply means we don’t need to save the index column to the CSV file, as we don’t want it. The index column is a Pandas-generated ID column that simply holds numbers like 0, 1, 2, 3, 4, and so on.
Your full ‘Fc_quote_embeddings.py’ file ought to now appear like this:
import openai import pandas as pd from decouple import config from Fx_quotes import quotes openai.api_key = config("CHATGPT_API_KEY") EMBEDDING_MODEL = "text-embedding-ada-002" total_tokens_used = 0 total_embeddings = 0 def get_quote_embedding(quote): international total_tokens_used, total_embeddings response = openai.Embedding.create( mannequin=EMBEDDING_MODEL, enter=quote, ) tokens_used = response["usage"]["total_tokens"] total_tokens_used += tokens_used total_embeddings += 1 if (total_embeddings % 10) == 0: print( f"Generated {total_embeddings} embeddings up to now with a complete of {total_tokens_used} tokens used. ({int((total_embeddings / len(quotes)) * 100)}%)" ) return response["data"][0]["embedding"] embedding_df = pd.DataFrame(columns=["quote", "author", "embedding"]) for index, quote in enumerate(quotes): current_quote = quote[0] attempt: current_author = quote[1] besides IndexError: current_author = "Unknown" embedding = get_quote_embedding(current_quote) embedding_df.loc[index] = [current_quote, current_author, embedding] embedding_df.to_csv("Fx_embedding_db.csv", index=False) print( f""" Generated {total_embeddings} embeddings with a complete of {total_tokens_used} tokens used. (Executed!) Succesfully saved embeddings to embedding_db.csv, printing dataframe head: {embedding_df.head(5)} """ )
Go forward and run it, this may take a bit of bit, however you’ll see common standing updates in your console.
Generated 10 embeddings up to now with a complete of 149 tokens used. (3%) Generated 20 embeddings up to now with a complete of 292 tokens used. (7%) Generated 30 embeddings up to now with a complete of 429 tokens used. (11%) Generated 40 embeddings up to now with a complete of 617 tokens used. (15%) Generated 50 embeddings up to now with a complete of 796 tokens used. (19%) ......
Don’t fear, this may value you want $0.001 as the present worth for Ada v2 tokens is $0.0001 per 1000 tokens. Ensure you let it run to 100%. You’ll see the fundamental construction of the DataFrame, which is only a desk with three columns holding knowledge:
quote creator embedding 0 A person is nice not as a result of he hasn't failed; a... Confucius [-0.03543785214424133, -0.01987086981534958, 0... 1 Happiness is a gift and the trick is not to ex... Charles Dickens [-0.0009652393055148423, -0.009218506515026093... 2 Everyday you can take a tiny step in the right... Unknown [0.014701569452881813, 0.00505814841017127, 0.... 3 Sometimes adversity is what you need to face i... Zig Ziglar [0.0021813535131514072, -0.011264899745583534,... 4 Opportunity comes when you continually push fo... Sonia Ricotti [-0.008844518102705479, -0.042655542492866516,...
You’ll now also have a large CSV file named ‘Fx_embedding_db.csv’ in your base directory which contains the column names and then all the values for all quotes, separated by commas. This is like a simple embeddings database we can load again later so we don’t have to generate these embeddings again.
Finding similar quotes
Now that we have all our embeddings generated and stored it’s time to have some fun! Go ahead and close up this file. We’ll be creating a new file named ‘Fd_find_nearest_quotes.py’ in which we’ll make a simple console utility similar-quote-search.
> Fd_find_nearest_quotes.py
Inside, let’s start with our imports:
import openai import numpy as np import pandas as pd from decouple import config from openai.embeddings_utils import cosine_similarity openai.api_key = config("CHATGPT_API_KEY") EMBEDDING_MODEL = "text-embedding-ada-002"
You may need to ‘pip install (package_name)’ if you’re missing any of these packages. We import openai and set the key using decouple/config as before. We also import pandas again and set the Embedding model to the same one we used before. The Numpy import is a library for working with arrays and matrices, it will allow us to efficiently load our embeddings from the CSV file we saved earlier on. Numpy has its own arrays for working with numbers which are more memory and CPU efficient, but of course also more limited, than Python’s built-in lists. We also import the cosine_similarity function from openai.embeddings_utils, as cosine similarity is how we compare the similarity between two embeddings.
Now define a simple get embedding function again, as we need to get one more embedding for the user input, so we can compare it to the embeddings in the database:
def get_quote_embedding(quote): response = openai.Embedding.create( model=EMBEDDING_MODEL, input=quote, ) return response["data"][0]["embedding"]
You can too summary away the get_quote_embedding perform to a special file like we did with the GPT_turbo_3.5 name in earlier tutorial components, however I’m simply going to depart it on this file for now.
Now we’re going to load our saved embeddings from the CSV file (we’re again outdoors the earlier perform block now):
df = pd.read_csv("Fx_embedding_db.csv") df["embedding"] = df.embedding.apply(eval).apply(np.array)
The primary line is pandas .read_csv methodology loading our CSV file for us. The CSV file solely accommodates textual content, which is okay for our quote and creator columns, as they solely comprise textual content, however the embedding is meant to be an array. We have to subsequently convert the embeddings column again from textual content type to arrays. As we briefly alluded to earlier than, the Numpy library has extra environment friendly arrays than Python lists relating to working with giant quantities of numerical values.
The second line selects the df[’embedding’] column, which is Pandas’ approach of choosing a column within the DataFrame. We set the worth of this column to df.embedding (additionally the embedding column) however with the values evaluated and transformed to Numpy arrays. The .apply methodology is a Pandas methodology that applies a perform to each worth in a column. We cross within the eval perform which evaluates the string as a Python expression, after which we cross within the np.array perform which converts the evaluated string to a numpy array.
Now let’s outline a perform to check the similarity between a person enter string and our quotes within the database:
def find_similar_quotes(user_input, number_of_results=5): user_embedding = get_quote_embedding(user_input) df["similarity"] = df.embedding.apply( lambda embedding: cosine_similarity(embedding, user_embedding) ) end result = df.sort_values(by="similarity", ascending=False).head(number_of_results) for i in vary(number_of_results): print( f"{i+1}: {end result.iloc[i]['quote']} - {end result.iloc[i]['author']} ({end result.iloc[i]['similarity']})" ) return end result
The perform takes a user_input string and an non-compulsory variety of outcomes desired argument. First, we get an embedding for the person enter, so we are able to examine it towards the opposite embeddings to search out related outcomes. We then declare a brand new column in our DataFrame by merely stating df[‘similarity’] after which defining what we would like inside this column.
This half might look barely complicated however we set the worth of this new df[‘similarity’] column to be the identical worth because the df[’embedding’] column after a perform has been utilized to it. The perform we apply is a lambda inline perform that takes an embedding as enter argument after which runs the cosine_similarity perform with the embedding evaluating it versus the user_embedding. This returns a quantity containing the diploma of similarity for every quote within the DataFrame, representing the similarity between what the person typed and the quote in that exact row.
After this we use the .sort_values Pandas methodology to type the DataFrame by this new similarity column, setting ascending to False to ensure we get the best and thus most related outcomes first. We then use the .head methodology to pick the primary x rows of the DataFrame, on this case, the variety of outcomes we would like. We then loop over the outcomes and print the quote, creator, and similarity rating for every end result. the iloc methodology is a Pandas methodology that enables us to pick a row by index on this DataFrame copy we named end result.
Getting person enter
Phew! Nearly accomplished, I promise =). Now let’s get some person enter and run the perform:
attempt: whereas True: print( "Welcome to the quote finder! Please enter a quote to search out related quotes." ) user_quote = enter("Enter a quote or press ctrl+c to exit: ") end result = find_similar_quotes(user_quote) besides KeyboardInterrupt: print("Exiting...")
Whereas True is an infinite loop. So this may preserve working endlessly till the person sorts CTRL+C, triggering the KeyboardInterrupt error. We print a welcome message after which get person enter. We then run the find_similar_quotes perform on the person enter, which is about as much as print of its personal accord so we solely need to name it. We then print a message and exit this system if the person sorts CTRL+C.
import openai import numpy as np import pandas as pd from decouple import config from openai.embeddings_utils import cosine_similarity openai.api_key = config("CHATGPT_API_KEY") EMBEDDING_MODEL = "text-embedding-ada-002" def get_quote_embedding(quote): response = openai.Embedding.create( mannequin=EMBEDDING_MODEL, enter=quote, ) return response["data"][0]["embedding"] df = pd.read_csv("Fx_embedding_db.csv") df["embedding"] = df.embedding.apply(eval).apply(np.array) def find_similar_quotes(user_input, number_of_results=5): user_embedding = get_quote_embedding(user_input) df["similarity"] = df.embedding.apply( lambda embedding: cosine_similarity(embedding, user_embedding) ) end result = df.sort_values(by="similarity", ascending=False).head(number_of_results) for i in vary(number_of_results): print( f"{i+1}: {end result.iloc[i]['quote']} - {end result.iloc[i]['author']} ({end result.iloc[i]['similarity']})" ) return end result attempt: whereas True: print( "Welcome to the quote finder! Please enter a quote to search out related quotes." ) user_quote = enter("Enter a quote or press ctrl+c to exit: ") end result = find_similar_quotes(user_quote) besides KeyboardInterrupt: print("Exiting...")
Save and run the file. Once more, you would possibly have to pip set up numpy, pandas, or one thing else when you get a selected error about lacking packages. If you run the file it ought to take a few seconds to load up all of the quotes and then you definitely’ll get a immediate:
Welcome to the quote finder! Please enter a quote to search out related quotes. Enter a quote:
Attempt one thing, no matter you are feeling like! For instance:
The that means of life is happiness and repair.
And we get probably the most related quotes with their similarity proportion rating:
1: The that means of life is to search out your reward. The aim of life is to offer it away. - Pablo Picasso (0.8907866069418188) 2: Be glad of life as a result of it offers you the prospect to like, and to work, and to play and to lookup on the stars. - Henry Van Dyke (0.8440406273541274) 3: Greatness comes from residing with function and fervour. - Ralph Marston (0.8426245135287526) 4: Happiness is a high quality of the soul...not a perform of 1's materials circumstances. - Aristotle (0.8360302282755299) 5: I outline pleasure as a sustained sense of well-being and inner peace - a connection to what issues. - Oprah Winfrey (1954 - ), O Journal (0.8352056139518256)
Let’s attempt one other one:
Don't worry making errors.
Listed here are the outcomes. You could discover that among the quotes don’t even embody the phrase worry or mistake, but they’re very related. That is the facility of embeddings and looking by similarity of that means.
1: The best mistake you may make in life is to be frequently fearing you'll make one. - Elbert Hubbard (0.8887830945296347) 2: The best mistake a person could make is to be afraid of constructing one. - Elbert Hubbard (1856 - 1915) (0.8806882070512129) 3: Do not let the worry of dropping be higher than the thrill of successful. - Robert Kiyosaki (0.8365511373648952) 4: You could be disillusioned when you fail, however you might be doomed when you do not attempt. - Beverly Sills (0.8351233284609576) 5: For the issues we've got to study earlier than we are able to do them, we study by doing them. - Aristotle (384 BC - 322 BC), Nichomachean Ethics (0.8234924901725198)
If you’re accomplished taking part in round, press CTRL+C to exit this system.
On this tutorial, we’ve got our DataFrame with all our knowledge saved in reminiscence. That is nice for our undertaking as our CSV database is just about 8 MB in measurement. However when you’re working with a really giant undertaking which is much past the scope of this tutorial you’ll want to think about using a specialised vector database for extra environment friendly storage and similarity search.
That’s it for half 6. Within the ultimate half, we’ll be taking a look at one other potential use for embeddings, which is to research sure traits and the sentiment of textual content utilizing purely embeddings, with out ever coaching a machine-learning mannequin on coaching knowledge. See you there!
///-///-///– Finish of instructional — Beneath are the quotes in case the txt file is unavailable –///-///-///
A person is nice not as a result of he hasn't failed; a person is nice as a result of failure hasn't stopped him. - Confucius Happiness is a present and the trick is to not anticipate it, however to thrill in it when it comes. - Charles Dickens On a regular basis you'll be able to take a tiny step in the best route. - Unknown Generally adversity is what it's essential to face with the intention to grow to be profitable. - Zig Ziglar Alternative comes whenever you frequently push ahead. - Sonia Ricotti All the time hunt down the seed of triumph in each adversity. - Og Mandino Actuality is nothing however a collective hunch. - Lily Tomlin Finest be your self, imperial, plain, and true. - Robert Browning Resilience is just not what occurs to you. It is the way you react to, reply to, and get better from what occurs to you. - Jeffrey Gitomer Time is a sport performed fantastically by youngsters. - Heraclitus Most individuals fail in life as a result of they main in minor issues. - Tony Robbins Anybody who has ever made something of significance was disciplined. - Andrew Hendrixson Do something, however let it produce pleasure. - Walt Whitman If you rise up within the morning, you've two decisions - both to be blissful or to be sad. Simply select to be blissful. - Norman Vincent Peale The best mistake you may make in life is to be frequently fearing you'll make one. - Elbert Hubbard Perspective, not aptitude, determines altitude. - Zig Ziglar A easy rule in coping with those that are laborious to get together with is to do not forget that this individual is striving to say his superiority; and you could take care of him from that perspective. - Alfred Adler For fast-acting aid attempt slowing down. - Lily Tomlin Persistence is a bitter plant, however its fruit is good. - Chinese language Proverb Heaven is correct the place you might be standing. - Morihei Ueshiba Do not let the worry of dropping be higher than the thrill of successful. - Robert Kiyosaki Life is like using a bicycle. To maintain your stability you could preserve transferring. - Albert Einstein Maintain your self answerable for the next commonplace than anyone else expects of you. - Henry Ward Beecher The key of life is to fall seven instances and to rise up eight instances. - Paulo Coelho There are individuals who have cash and people who find themselves wealthy. - Coco Chanel Fact is like most opinions - greatest unexpressed. - Kenneth Branagh Success is getting what you need... Happiness is wanting what you get. - Dale Carnegie Have interaction in these actions and ideas that nurture the great qualities you need to have. - Paramahansa Yogananda Should you can't perceive one thing, then you've understood it incorrectly. - Kabir The useless obtain extra flowers than the residing as a result of remorse is stronger than gratitude. - Anne Frank The quickest solution to change is to snigger at your personal folly. - Spencer Johnson As a result of a factor appears troublesome for you, don't suppose it unattainable. - Marcus Aurelius I discovered that braveness was not the absence of worry, however the overcome it. The courageous man is just not he who doesn't really feel afraid, however he who conquers that worry. - Nelson Mandela Flip your wounds into knowledge. - Oprah Winfrey Your greatest life won't be present in consolation. Will probably be present in combating for what you consider in. - Maxime Lagace I by no means dwell on what occurred. You may't change it. Transfer ahead. - Joan Rivers Absence makes the center develop fonder. - Eleanor Roosevelt Some males see issues as they're and ask why. Others dream issues that by no means have been and ask why not. - George Bernard Shaw You will need to conceive it in your coronary heart and thoughts earlier than you'll be able to obtain it. Should you consider then all issues are doable. - Norman Vincent Peale An inch of time is an inch of gold however you'll be able to't purchase that inch of time with an inch of gold. - Chinese language Proverb He who hesitates is a damned idiot. - Mae West Till you make the unconscious acutely aware, it would direct your life and you'll name it destiny. - Carl Jung A loving coronary heart is the truest knowledge. - Charles Dickens Hope itself is sort of a star- to not be seen within the sunshine of prosperity, and solely to be found within the night time of adversity. - Charles Spurgeon Attempt all issues, maintain quick that which is nice. - John Locke If you're not residing every day with pleasure, vitality, and fervour, then you aren't residing true to your life function. - Celestine Chua The extra information you've, the extra you are free to depend on your instincts. - Arnold Schwarzenegger You may dwell an entire life time by no means being awake. - Dan Millman What you might be afraid of isn't as unhealthy as what you think about. The worry you let construct up in your thoughts is worse than the scenario that really exists. - Spencer Johnson The smart accomplish all that they need with out arousing the envy or scorn of others. - Ming-Dao Deng It is solely after you've got stepped outdoors your consolation zone that you simply start to vary, develop, and remodel. - Roy T. Bennett Our view of the world is really formed by what we resolve to listen to. - William James Happiness is a high quality of the soul...not a perform of 1's materials circumstances. - Aristotle As long as we're being remembered, we stay alive. - Carlos Ruiz Zafon Throw me to the wolves and I'll return main the pack. - Seneca The wisest males comply with their very own route. - Euripides All our information has its origins in our perceptions. - Leonardo da Vinci Custom is the phantasm of permanence. - Woody Allen There isn't a greatness the place there's not simplicity, goodness, and fact. - Leo Tolstoy You could be disillusioned when you fail, however you might be doomed when you do not attempt. - Beverly Sills It doesn't do to dwell on desires and overlook to dwell, do not forget that. - Albus Dumbledore It's higher to be seemed over than missed. - Mae West Fairly than love, than cash, than fame, give me fact. - Henry David Thoreau If what you are doing is just not your ardour, you don't have anything to lose. - Celestine Chua Troubles are sometimes the instruments by which God fashions us for higher issues. - Henry Ward Beecher We won't assist everybody, however everybody may also help somebody. - Ronald Reagan My definition of success is management. - Kenneth Branagh Earlier than you'll be able to see the Mild, you need to take care of the darkness. - Dan Millman Troublesome and significant will at all times deliver extra satisfaction than straightforward and meaningless. - Maxime Lagace Welcome each morning with a smile. Look on the brand new day as one other reward out of your Creator, one other golden alternative. - Og Mandino Hold your pals shut, and your enemies nearer. - Solar Tzu It's the energy of thought that provides man energy over nature. - Hans Christian Andersen Essentially the most inventive act you'll ever undertake is the act of making your self. - Deepak Chopra Your setback is only a setup for a comeback. - Steve Harvey Do not speak about what you've accomplished or what you're going to do. - Thomas Jefferson Do not search for that means within the phrases. Hearken to the silences. - Samuel Beckett Our nervousness doesn't empty tomorrow of its sorrows, however solely empties right now of its strengths. - Charles Spurgeon You may by no means get sufficient of what you need not make you content. - Eric Hoffer If a person is aware of to not which port he sails, no wind is favorable. - Seneca What individuals want and what they need could also be very completely different. - Elbert Hubbard Present up even when you do not need to present up. - Steve Harvey Play your half in life, however always remember that it's only a job. - Paramahansa Yogananda I've no strategies; all I do is settle for individuals as they're. - Joan Rivers The best way of success is the way in which of steady pursuit of information. - Napoleon Hill If you're ever the neatest individual within the room, you might be within the incorrect room. - C. Sean McGee Do the laborious jobs first. The simple jobs will maintain themselves. - Dale Carnegie Should you consider you'll be able to, you'll be able to. Should you consider you'll be able to't, then, nicely you'll be able to't. - Celestine Chua Generally it's more durable to deprive oneself of a ache than of a pleasure. - F. Scott Fitzgerald The smallest of actions is at all times higher than the noblest of intentions. - Robin Sharma Releasing oneself from phrases is liberation. - Bodhidharma Actuality is the main reason for stress amongst these in contact with it. - Lily Tomlin A day with out laughter is a day wasted. - Charlie Chaplin I dwell by letting issues occur. - Dogen Do not attempt to be younger. Simply open your thoughts. Keep fascinated with stuff. - Betty White A profitable man is one who can lay a agency basis with the bricks others have thrown at him. - David Brinkley Greatness comes from residing with function and fervour. - Ralph Marston A fowl doesn't sing as a result of it has a solution. It sings as a result of it has a tune. - Chinese language Proverb The that means of life is to search out your reward. The aim of life is to offer it away. - Pablo Picasso Creativeness is the true magic carpet. - Norman Vincent Peale Should you do the work you get rewarded. There are not any shortcuts in life. - Michael Jordan You discover peace not by rearranging the circumstances of your life, however by realizing who you might be on the deepest degree. - Eckhart Tolle Do not look forward to the best alternative: create it. - George Bernard Shaw Change isn't straightforward, however at all times doable. - Barack Obama Kindness in phrases creates confidence. Kindness in pondering creates profoundness. Kindness in giving creates love. - Lao Tzu Logic comes from expertise, and expertise comes from unhealthy judgment. - Rita Mae Brown The spirit is past destruction. Nobody can deliver an finish to spirit which is eternal. - Bhagavad Gita If you need peace, settle for. If you need struggling, anticipate. - Maxime Lagace To be able to management myself I need to first settle for myself by going with and never towards my nature. - Bruce Lee The place your abilities and the wants of the world cross, there lies your vocation. - Aristotle If you wish to achieve success, you need to soar, there is not any approach round it. - Steve Harvey All life is a manifestation of the spirit, the manifestation of affection. - Morihei Ueshiba A poet ought to be so artful with phrases that he's envied even for his pains. - Criss Jami The primary rule of dealing with battle is do not cling round people who find themselves continuously participating in battle. - Naval Ravikant Generosity is giving greater than you'll be able to, and satisfaction is taking lower than you want. - Kahlil Gibran If you don't change route, it's possible you'll find yourself the place you might be heading. - Lao Tzu Much less is extra. - Robert Browning Sorrow is how we study to like. - Rita Mae Brown A person with outward braveness dares to die: a person with interior braveness dares to dwell. - Lao Tzu Due to your smile, you make life extra stunning. - Thich Nhat Hanh Progress is restricted by your potential to vary your thoughts. - Jack Butcher An individual with no humorousness is sort of a wagon with out springs, jolted by each pebble within the highway. - Henry Ward Beecher The one limits in your life are people who you set your self. - Celestine Chua Do one factor every single day that scares you. - Eleanor Roosevelt We form clay right into a pot, however it's the vacancy inside that holds no matter we would like. - Lao Tzu There isn't a self-discovery with out ache and loss. - Anita Krizzan It is not what you do, however the way you do it. - John Wood A needle is just not sharp at each ends. - Chinese language Proverb True information exists in understanding that you realize nothing. - Socrates It's far simpler to start out one thing than it's to complete it. - Amelia Earhart It's higher to fail in originality than to reach imitation. - Herman Melville Capacity is a poor man's wealth. - John Wood Be truthful about your feelings, and use your thoughts and feelings in your favor, not towards your self. - Robert Kiyosaki Even when you're certain you'll be able to win, watch out that you could dwell with what you lose. - Gary Keller Study solely how you can keep away from searching for for and attaching yourselves to something. - Huang Po Simply belief that all the pieces is unfolding the way in which it's speculated to. Do not resist... Nice issues are ready for you across the nook. - Sonia Ricotti The actual measure of your wealth is how a lot you would be value when you misplaced all of your cash. - Unknown Kindness is a language which the deaf can hear and the blind can see. - Mark Twain Thought is so crafty, so intelligent, that it distorts all the pieces for its personal comfort. - Jiddu Krishnamurti There is just one solution to happiness and that's to stop worrying about issues that are past the facility or our will. - Epictetus A bit progress every day provides as much as large outcomes. - Unknown I feel it is crucial to have a suggestions loop, the place you are continuously occupied with what you've got accomplished and the way you may be doing it higher. - Elon Musk Issues stay as issues as a result of individuals are busy defending them reasonably than discovering options. - Celestine Chua The one protection towards the world is a radical information of it. - John Locke As mortals, we're dominated by circumstances, not by ourselves. - Bodhidharma By no means purchase a factor you do not need, as a result of it's low-cost, it is going to be expensive to you. - Thomas Jefferson Issues can't endlessly go downward. There are limits to all the pieces�even the chilly, and the darkness, and the wind, and the dying. - Ming-Dao Deng It's higher to disappoint individuals with the reality than to appease them with a lie. - Simon Sinek Do not be afraid of enemies who assault you. Be afraid of the buddies who flatter you. - Dale Carnegie Fools learn quick. Geniuses reread. - Maxime Lagace The best reward for an individual's toil is just not what they get for it, however what they grow to be by it. - John Ruskin (1819 - 1900), 1819-1900 No pessimist ever found the secrets and techniques of the celebs, or sailed to uncharted land, or opened a brand new doorway for the human spirit. - Helen Keller (1880 - 1968) A pessimist sees the issue in each alternative; Speak sense to a idiot and he calls you silly. - Euripides (484 BC - 406 BC), The Bacchae, circa 407 B.C. On the worst, a home unkept can't be so distressing as a life unlived. - Dame Rose Macaulay (1881 - 1958) The reality is never pure and by no means easy. - Oscar Wilde (1854 - 1900), The Significance of Being Earnest, 1895, Act I Think about what it might be like if TV really have been good. It might be the top of all the pieces we all know. - Marvin Minsky Cynics regarded everyone as equally corrupt... Idealists regarded everyone as equally corrupt, besides themselves. - Robert Anton Wilson To be an grownup is to be alone. - Jean Rostand (1894 - 1977), Ideas of a biologist (1939) A psychiatrist is a fellow who asks you a variety of costly questions your spouse asks for nothing. - Joey Adams The best mistake a person could make is to be afraid of constructing one. - Elbert Hubbard (1856 - 1915) There's an expiry date on blaming your dad and mom for steering you within the incorrect route. The second you might be sufficiently old to take the wheel, the duty lies with you. - J. Ok. Rowling, Harvard Graduation Handle, 2008 To not know is unhealthy. To not want to know is worse. - African Proverb And perfection is not any trifle. - Michelangelo Buonarroti (1475 - 1564) I'm not one who was born within the possession of information; I'm one who's keen on antiquity, and earnest in searching for it there. - Confucius (551 BC - 479 BC), The Confucian Analects Ignorance is just not innocence however sin. - Robert Browning (1812 - 1889) Opinions imply nothing; they might be stunning or ugly, intelligent or silly, anybody can embrace or reject them. - Hermann Hesse (1877 - 1962), Siddhartha How might you?! Have not you discovered something from that man who offers these sermons at church? Captain Whatshisname? We dwell in a society of legal guidelines! Why do you suppose I took you to all these Police Academy films? For enjoyable? Nicely, I did not hear anyone laughing, did you? Besides at that man who made sound results. Makes sound results and laughs. The place was I? Oh yeah! Keep out of my booze. - Matt Groening (1954 - ), The Simpsons Does it actually matter what these affectionate individuals do-- as long as they don’t do it within the streets and frighten the horses! - Mrs. Patrick Campbell For demise begins with life's first breath, and life begins at contact of demise. - John Oxenham What's one other phrase for Thesaurus? - Steven Wright (1955 - ) As soon as we consider in ourselves, we are able to threat curiosity, marvel, spontaneous delight, or any expertise that reveals the human spirit. - e e cummings (1894 - 1962) For the issues we've got to study earlier than we are able to do them, we study by doing them. - Aristotle (384 BC - 322 BC), Nichomachean Ethics Reward will come to these whose kindness leaves you with out debt. - Neil Finn, monitor #12 on his album "Attempt Whistling This" Waste no extra time speaking about nice souls and the way they need to be. Grow to be one your self! - Marcus Aurelius Antoninus (121 AD - 180 AD) You may’t love a crowd the identical approach you'll be able to love an individual. Confusion is at all times probably the most sincere response. - Marty Indik Whether or not you consider you are able to do a factor or not, you might be proper. - Henry Ford (1863 - 1947) Now begins a torrent of phrases and a trickling of sense. - Theocritus of Chios (310 BC - 250 BC) If there was strife and rivalry within the house, little or no else in life might compensate for it. - Lawana Blackwell, The Courtship of the Vicar's Daughter, 1998 Science is organized information. - Herbert Spencer (1820 - 1903) I object to violence as a result of when it seems to do good, the great is just momentary; the evil it does is everlasting. - Mahatma Gandhi (1869 - 1948) Keep in mind that what you consider will rely very a lot on what you might be. - Noah Porter (1811 - 1892) One would possibly outline maturity because the age at which an individual learns he should die and accepts his sentence undismayed. - Robert Heinlein (1907 - 1988) Every fowl loves to listen to himself sing. - Arapaho Proverb The one obligation which I've a proper to imagine, is to do at any time what I feel proper. - Henry David Thoreau (1817 - 1862), Civil Disobience To be content material with what one has is the best and truest of riches. - Cicero (106 BC - 43 BC) The time you get pleasure from losing is just not wasted time. - Bertrand Russell (1872 - 1970) Most conversations are merely monologues delivered within the presence of witnesses. - Margaret Millar I used to be not on the lookout for my desires to interpret my life, however reasonably for my life to interpret my desires. - Susan Sontag (1933 - 2004) Trifles go to make perfection, There's one and just one social duty of business-to use its assets and have interaction in actions designed to extend its income as long as it stays throughout the guidelines of the sport, which is to say, engages in open and free competitors with out deception or fraud. - Milton Friedman (1912 - 2006) My drawback lies in reconciling my gross habits with my web revenue. - Errol Flynn (1909 - 1959) Everyone seems to be having a more durable time than it seems. - Charles Grodin After I was born the physician took one have a look at my face, turned me over and stated, Look ... twins! - Rodney Dangerfield (1921 - 2004) Be glad of life as a result of it offers you the prospect to like, and to work, and to play and to lookup on the stars. - Henry Van Dyke Such current joys therein I discover, I'm simply going outdoors and could also be a while. - Captain Lawrence Oates (1880 - 1912), final phrases Convictions are extra harmful enemies of the reality than lies. - Friedrich Nietzsche (1844 - 1900) All that's on this world is self-importance, however to like God and to serve solely Him. - Thomas Kempis, Imitation of Christe See first that the design is smart and simply: that ascertained, pursue it resolutely; don't for one repulse forego the aim that you simply resolved to impact. - William Shakespeare (1564 - 1616) If you cannot reply a person's argument, all is just not misplaced; you'll be able to nonetheless name him vile names. - Elbert Hubbard (1856 - 1915) Good individuals don't want legal guidelines to inform them to behave responsibly, whereas unhealthy individuals will discover a approach across the legal guidelines. - Plato (427 BC - 347 BC) An informal stroll by means of the lunatic asylum reveals that religion doesn't show something. - Friedrich Nietzsche (1844 - 1900) I envy individuals who drink. Not less than they've one thing guilty all the pieces on. - Oscar Levant (1906 - 1972) Cash, so they are saying, is the basis of all evil right now. However when you ask for a increase it is no shock that they are giving none away. - Pink Floyd, tune "Cash" (album Darkish Aspect of the Moon) The mind is a superb organ. It begins working the second you rise up within the morning and doesn't cease till you get into the workplace. - Robert Frost (1874 - 1963) What do you imply? Do you would like me a superb morning, or imply that it's a good morning whether or not I need it or not; or that you simply really feel good on this morning; or that it's a morning to be good on? - J. R. R. Tolkien (1892 - 1973), The Hobbit The peril of each nice school is the delight of taking part in with it for satisfaction. Expertise is usually developed on the expense of character, and the higher it grows, the extra is the mischief. Expertise is mistaken for genius, a dogma or system for fact, ambition for best, ingenuity for poetry, sensuality for artwork. - Ralph Waldo Emerson (1803 - 1882) I've by no means considered writing as laborious work, however I've labored laborious to discover a voice. - Randy Pausch, Carnegie Mellon Graduation Speech, 2008 The scars of others ought to educate us warning. - Saint Jerome (374 AD - 419 AD), Letter I hate tv. I hate it as a lot as I hate peanuts. However I can not cease consuming peanuts. - Orson Welles (1915 - 1985) They wished information. Information! They demanded information from him, as if information might clarify something. - Joseph Conrad (1857 - 1924) an optimist sees the chance in each problem. - Winston Churchill Intimacy doesn’t scale. Probably not. Intimacy is a one-on-one phenomenon. - Hugh Macleod, How To Be Artistic: 26. Write from the center., 08-22-04 I need to dislike those that, no matter I do to please them, persist in disliking me; I need to resist those that punish me unjustly. - Charlotte Bronte (1816 - 1855), Jane Eyre , I can see two tiny footage of myself And there is one in every of your eyes. They usually're doin' all the pieces I do. Each time I gentle a cigarette, they gentle up theirs. I take a drink and I look in and so they're drinkin' too. It is drivin' me loopy. It is drivin' me nuts. - Laurie Anderson, Sharkey's Evening When all else fails, there's at all times delusion. - Conan O'Brien Anger is a sign, and one value listening to. - Harriet Lerner, The Dance of Anger, 1985 The secrets and techniques of this earth aren't for all males to see, however solely for individuals who search them. - Ayn Rand (1905 - 1982), Anthem I can rent one half of the working class to kill the opposite half. - Jay Gould (1836 - 1892) Of two evils we should at all times select the least. - Thomas a Kempis (1380 - 1471) Nicely, if I referred to as the incorrect quantity, why did you reply the cellphone? - James Thurber (1894 - 1961), New Yorker cartoon caption, June 5, 1937 I might say to the Home, as I stated to those that have joined this Authorities: 'I've nothing to supply however blood, toil, tears, and sweat." - Sir Winston Churchill (1874 - 1965), Hansard, Could 13, 1940 The one "ism" hollywood believes in is plagiarism. - Dorothy Parker (1893 - 1967) Human consciousness arose however a minute earlier than midnight on the geological clock. But we mayflies attempt to bend an historical world to our functions, ignorant maybe of the messages buried in its lengthy historical past. Allow us to hope that we're nonetheless within the early morning of our April day. - Stephen Jay Gould (1941 - 2002) Do it now. It isn't secure to depart a beneficiant feeling to the cooling influences of the world. - Thomas Guthrie Nor but the final to put the outdated apart. - Alexander Pope (1688 - 1744), An Essay on Criticism, 1711 The higher man the higher courtesy. - Alfred Lord Tennyson (1809 - 1892) Water, taken carefully, can't harm anyone. - Mark Twain (1835 - 1910) Should you can’t take duty to your personal well-being, you'll by no means take management over it. - Jennifer Hudson, I Received This: How I Modified My Methods and Misplaced What Weighed Me Down, 2012 You can't be actually first-rate at your work in case your work is all you might be. - Anna Quindlen (1953 - ), A Brief Information to a Completely satisfied Life, 2000 How helpless we're, like netted birds, once we are caught by need! - Belva Plain We promise in response to our hopes, and carry out in response to our fears. - Dag Hammarskjold (1905 - 1961) To Thales the first query was not what do we all know, however how do we all know it. - Aristotle (384 BC - 322 BC) When the candles are out all ladies are honest. - Plutarch (46 AD - 120 AD), Morals Who ever liked that liked not at first sight? - William Shakespeare (1564 - 1616), As You Like It, Act III, sc. 5 The best proof of advantage is to own boundless energy with out abusing it. - Lord Macaulay, evaluate of Lucy Aikin, 'Life and Writings of Addison,' 1943 It was the Legislation of the Sea, they stated. Civilization ends on the waterline. Past that, all of us enter the meals chain, and never at all times proper on the high. - Hunter S. Thompson (1939 - 2005) There are not any frontiers on this wrestle to the demise... A victory for any nation towards imperialism is our victory, simply as any nation's defeat is a defeat for all. - Ernesto "Che" Guevara, "Second Financial Seminar of Afro-Asian Solidarity", February 1965 When a topic turns into completely out of date we make it a required course. - Peter Drucker (1909 - 2005) Dangerous spellers of the world, untie! - Graffito In taking revenge, a person is however even together with his enemy; however in passing it over, he's superior. - Sir Francis Bacon (1561 - 1626) Be not the primary by whom the brand new are tried, You have got seen how a person was made a slave; you shall see how a slave was made a person. - Frederick Douglass (1817 - 1895) That it excels all different bliss. - Sir Edward Dyer After all it is doable to like a human being if you do not know them too nicely. - Charles Bukowski (1920 - 1994) I outline pleasure as a sustained sense of well-being and inner peace - a connection to what issues. - Oprah Winfrey (1954 - ), O Journal My thoughts to me a kingdom is, And a crowd can’t love you the way in which a single individual can love you. Anybody whose aim is 'one thing increased' should anticipate sometime to undergo vertigo. What's vertigo? Concern of falling? No, Vertigo is one thing apart from worry of falling. It's the voice of the vacancy under us which tempts and lures us, it's the need to fall, towards which, terrified, we defend ourselves. - Milan Kundera (1929 - ), The Insufferable Lightness of Being Love comforteth like sunshine after rain. - William Shakespeare (1564 - 1616), King Henry VI, Half 3 I do not perceive why individuals suppose all the pieces has to have that means. Whereas portray the Mona Lisa did Leonardo Da Vinci intend for it to have higher that means than a murals that he made? - Devin J. Monroe (1983 - ) A pessimist is a person who seems to be each methods earlier than crossing a a method avenue. - Laurence J. Peter (1919 - 1988), Peter's Quotations, by Laurence J. Peter, 1977 Confronted with the selection between altering one's thoughts and proving that there is no such thing as a want to take action, virtually everybody will get busy on the proof. - John Kenneth Galbraith (1908 - 2006) Struggle is just a continuation of state coverage by different means. - Karl von Clausewitz, In Clausewitz's 1827 work "On Struggle" All strangers and beggars are from Zeus, and a present, although small, is valuable. - Homer (800 BC - 700 BC), The Odyssey
💡 Full Course with Movies and Course Certificates (PDF): https://academy.finxter.com/college/openai-api-function-calls-and-embeddings/