FAQ

Frequently Asked Questions (FAQ)

Getting Started

How do I get started with gollm?

To get started with gollm, install the package using go get github.com/teilomillet/gollm. Then, create an LLM instance with llm, err := gollm.NewLLM() and start generating responses.

What providers and models are supported by gollm?

Gollm supports OpenAI, Anthropic, and Groq providers. Supported models include GPT-4, GPT-3.5-turbo, Claude, and Llama.

How do I set my API key in gollm?

Set your API key using the SetAPIKey option when creating an LLM instance: gollm.NewLLM(gollm.SetAPIKey("your-api-key")).

Prompt Types and Configuration

What types of prompts can I create with gollm?

Gollm supports basic prompts, prompts with context, directives, examples, and structured output specifications.

How do I add context or examples to my prompts in gollm?

Use gollm.WithContext() and gollm.WithExamples() options when creating a prompt.

Can I specify the output format for the LLM response in gollm?

Yes, use gollm.WithOutput() to specify the desired output format.

How do I customize the LLM configuration in gollm?

Use configuration options like SetProvider, SetModel, SetMaxTokens when creating an LLM instance.

Can I change configuration options dynamically in gollm?

Yes, use the SetOption method on an existing LLM instance to change options dynamically.

Advanced Features

How can I compare responses from different LLM providers or models using gollm?

Use the gollm.CompareModels() function to generate and compare responses from multiple models.

How can I ensure the LLM generates responses in a specific structure with gollm?

Use gollm.WithJSONSchemaValidation() and define a struct that represents your desired output structure.

Can gollm extract structured data from unstructured text?

Yes, use the gollm.ExtractStructuredData() function with a defined struct to extract structured data.

How do I use gollm for text summarization?

Use the gollm.Summarize() function, specifying the text to summarize and any additional options.

How can I use gollm for question-answering tasks?

Use the gollm.QuestionAnswer() function, providing the question and any relevant context.

What is chain of thought reasoning and how can I use it with gollm?

Chain of thought reasoning breaks down complex problems into steps. Use gollm.ChainOfThought() to implement this.

Error Handling and Optimization

How does gollm handle errors from the LLM API?

Gollm includes built-in error handling and retry mechanisms. Configure with SetMaxRetries and SetRetryDelay.

How can I debug issues with my gollm implementation?

Set the debug level using SetDebugLevel(gollm.LogLevelDebug) to get detailed logging information.

How can I optimize the performance of my gollm-based application?

Use appropriate MaxTokens settings, implement caching where possible, and consider batching requests.

Extensibility

Can I add support for new LLM providers or models in gollm?

Yes, gollm is designed to be extensible. Implement the required interfaces to add new providers or models.

How can I extend gollm's functionality for my specific use case?

Create custom prompt templates, implement additional high-level functions, or extend existing structs to suit your needs.

Content Creation and Workflows

How can I use gollm for content creation tasks?

Gollm supports multi-step content creation workflows. Use functions like gollm.Generate() in sequence for research, ideation, and refinement stages.

Is it possible to chain multiple prompts together for complex tasks in gollm?

Yes, you can chain prompts by using the output of one prompt as input for the next. Implement this using multiple gollm.Generate() calls.

Structured Data and Validation

How do I define the structure for data extraction in gollm?

Define a Go struct with appropriate JSON tags and validation rules. Use this struct with gollm.ExtractStructuredData().

Is it possible to validate the structure of the LLM's output in gollm?

Yes, use gollm.WithJSONSchemaValidation() when generating responses, and define structs with validation tags.

Performance and Best Practices

Are there any best practices for reducing API costs when using gollm?

Use appropriate MaxTokens settings, implement caching for repeated queries, and batch similar requests when possible.

How can I improve response time in my gollm-based application?

Use faster models for less complex tasks, implement concurrent processing where appropriate, and optimize prompt design.

Advanced Configuration

Can I use multiple providers in the same gollm application?

Yes, create multiple LLM instances with different providers using gollm.NewLLM() with appropriate SetProvider() options.

How do I set up retry behavior for failed requests in gollm?

Configure retry behavior using SetMaxRetries() and SetRetryDelay() when creating an LLM instance.

Debugging and Logging

Is there a way to see the raw responses from the LLM in gollm?

Set the debug level to LogLevelDebug to see detailed information, including raw responses.

How can I implement custom logging in my gollm application?

Implement the Logger interface and set it using a custom configuration option when creating an LLM instance.

Specific Use Cases

How do I use gollm for sentiment analysis?

Create a prompt that asks for sentiment analysis and use gollm.Generate() or create a custom high-level function for this task.

Can gollm be used for language translation?

Yes, create prompts that specify the source and target languages, then use gollm.Generate() for translation tasks.

Integration and Compatibility

Can I use gollm with other NLP libraries?

Yes, gollm can be used alongside other NLP libraries. Use gollm for LLM interactions and integrate with other libraries as needed.

Is gollm compatible with all Go versions?

Gollm is compatible with Go 1.18 and later versions due to its use of generics.

Last updated